Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Quick Answer: Чтобы пакетно конвертировать SVG-файлы в Python, переберите входную папку, загрузите каждый .svg файл через
SVGDocument, создайте параметры сохранения для целевого формата и вызовите
Converter.convert_svg() для каждого выходного файла.
Пакетная конвертация полезна, когда приложению нужны миниатюры, веб-превью, экспортированная графика для отчетов или PDF-копии для папки SVG-файлов. Сценарий такой же, как при конвертации одного файла, но повторяется для каждого исходного файла:
.svg файлы.Перед запуском примеров установите Aspose.SVG for Python via .NET в вашей Python-среде.
PNG – хороший формат по умолчанию для веб-превью и прозрачного растрового вывода. Следующий пример конвертирует каждый .svg файл из data/svg/ в .png файл в папке output/png/.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.saving import ImageSaveOptions
5
6# Batch convert SVG files to PNG
7input_folder = "data/svg/"
8output_folder = "output/png/"
9os.makedirs(output_folder, exist_ok=True)
10
11options = ImageSaveOptions()
12
13for file_name in os.listdir(input_folder):
14 if not file_name.lower().endswith(".svg"):
15 continue
16
17 input_path = os.path.join(input_folder, file_name)
18 output_name = os.path.splitext(file_name)[0] + ".png"
19 output_path = os.path.join(output_folder, output_name)
20
21 with SVGDocument(input_path) as document:
22 Converter.convert_svg(document, options, output_path)При конвертации в JPG задайте ImageFormat.JPEG и выберите цвет фона, потому что JPG не поддерживает прозрачность.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.rendering.image import ImageFormat
5from aspose.svg.saving import ImageSaveOptions
6from aspose.pydrawing import Color
7
8# Batch convert SVG files to JPG with a solid background
9input_folder = "data/svg/"
10output_folder = "output/jpg/"
11os.makedirs(output_folder, exist_ok=True)
12
13options = ImageSaveOptions()
14options.format = ImageFormat.JPEG
15options.background_color = Color.from_argb(255, 255, 255)
16
17for file_name in os.listdir(input_folder):
18 if not file_name.lower().endswith(".svg"):
19 continue
20
21 input_path = os.path.join(input_folder, file_name)
22 output_name = os.path.splitext(file_name)[0] + ".jpg"
23 output_path = os.path.join(output_folder, output_name)
24
25 with SVGDocument(input_path) as document:
26 Converter.convert_svg(document, options, output_path)Используйте PdfSaveOptions, когда каждый SVG-файл должен стать отдельным PDF-файлом.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.saving import PdfSaveOptions
5
6# Batch convert SVG files to separate PDF files
7input_folder = "data/svg/"
8output_folder = "output/pdf/"
9os.makedirs(output_folder, exist_ok=True)
10
11options = PdfSaveOptions()
12
13for file_name in os.listdir(input_folder):
14 if not file_name.lower().endswith(".svg"):
15 continue
16
17 input_path = os.path.join(input_folder, file_name)
18 output_name = os.path.splitext(file_name)[0] + ".pdf"
19 output_path = os.path.join(output_folder, output_name)
20
21 with SVGDocument(input_path) as document:
22 Converter.convert_svg(document, options, output_path)Предыдущие примеры повторяют один и тот же цикл по папке для PNG, JPG и PDF. В прикладном коде обычно удобнее вынести этот цикл в одну вспомогательную функцию и передавать только то, что меняется: выходную папку, расширение выходного файла и параметры сохранения.
Используйте этот подход, если проект поддерживает несколько форматов экспорта и вы не хотите сопровождать три отдельных цикла. Функция ниже по-прежнему создает один выходной файл для каждого SVG; она только убирает повторяющийся код.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.rendering.image import ImageFormat
5from aspose.svg.saving import ImageSaveOptions, PdfSaveOptions
6from aspose.pydrawing import Color
7
8def batch_convert_svg(input_folder, output_folder, output_extension, options):
9 os.makedirs(output_folder, exist_ok=True)
10
11 for file_name in os.listdir(input_folder):
12 if not file_name.lower().endswith(".svg"):
13 continue
14
15 input_path = os.path.join(input_folder, file_name)
16 output_name = os.path.splitext(file_name)[0] + output_extension
17 output_path = os.path.join(output_folder, output_name)
18
19 with SVGDocument(input_path) as document:
20 Converter.convert_svg(document, options, output_path)
21
22input_folder = "data/svg/"
23
24# Reuse the same helper for PNG output
25png_options = ImageSaveOptions()
26batch_convert_svg(input_folder, "output/png/", ".png", png_options)
27
28# Reuse the same helper for JPG output
29jpg_options = ImageSaveOptions()
30jpg_options.format = ImageFormat.JPEG
31jpg_options.background_color = Color.from_argb(255, 255, 255)
32batch_convert_svg(input_folder, "output/jpg/", ".jpg", jpg_options)
33
34# Reuse the same helper for PDF output
35pdf_options = PdfSaveOptions()
36batch_convert_svg(input_folder, "output/pdf/", ".pdf", pdf_options)| Проблема | Возможная причина | Решение |
|---|---|---|
| Файлы не конвертируются | Скрипт смотрит не в ту входную папку или фильтрует не то расширение | Выведите input_folder и проверьте, что в ней есть .svg файлы |
| Выходные файлы перезаписывают друг друга | Разные исходные файлы дают одинаковое базовое имя результата | Сохраняйте структуру подпапок или добавляйте суффикс к генерируемым именам |
| Связанные изображения или CSS отсутствуют | Относительные ресурсы недоступны рядом с исходным SVG | Загружайте каждый SVG из исходного пути и храните ресурсы в ожидаемых относительных расположениях |
| JPG имеет неожиданный фон | JPG не поддерживает прозрачность | Задайте ImageSaveOptions.background_color |
| Один некорректный SVG останавливает всю пакетную обработку | Исключения не обрабатываются отдельно для каждого файла | Оберните каждую конвертацию в try/except и логируйте имена файлов с ошибками |
Переберите входную папку, загрузите каждый .svg файл через SVGDocument и вызовите Converter.convert_svg() с нужными параметрами сохранения.
Да. Используйте ImageSaveOptions, задайте options.format = ImageFormat.JPEG, установите цвет фона и сохраняйте каждый выходной файл с расширением .jpg.
Да. Используйте PdfSaveOptions и записывайте каждый конвертированный документ в выходной путь .pdf.
Да. Используйте рекурсивный обход папок в Python-коде и создавайте соответствующие выходные папки перед сохранением конвертированных файлов.
Этот сценарий пакетной обработки создает один выходной файл для каждого SVG. Если нужен один объединенный многостраничный PDF, используйте класс SvgRenderer с выходным устройством PdfDevice; рендерер может отправить несколько SVG-документов в одно PDF-устройство.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.