Конвертация файлов SVG в Python

Quick Answer: Aspose.SVG for Python via .NET конвертирует SVG в PDF, PNG, JPG, BMP, TIFF, GIF и XPS. Используйте Converter.convert_svg() для прямой конвертации файлов или загрузите SVGDocument и вызовите render_to(device), если нужен сценарий на базе устройства рендеринга.

Конвертация SVG в Python

SVG удобен для масштабируемой графики, но многим рабочим процессам нужны фиксированные выходные форматы. Используйте PDF для печати и обмена документами, PNG или JPG для веб-превью и растровых ресурсов, TIFF или BMP для графических пайплайнов, GIF для простого растрового вывода и XPS для fixed-layout сценариев.

Эта страница дает краткий обзор API конвертации SVG. Для подробных настроек и примеров по конкретным форматам используйте связанные статьи ниже.

Поддерживаемые выходные форматы

Выходной форматТипичное применениеПодробная статья
PDFПечать, архивирование, обмен документамиКонвертировать SVG в PDF
PNGВеб-изображения, прозрачный растровый вывод, превьюКонвертировать SVG в PNG
JPGРастровые превью без прозрачностиКонвертировать SVG в JPG
BMPПростой bitmap-выводКонвертировать SVG в изображение
TIFFПубликационные и графические рабочие процессыКонвертировать SVG в изображение
GIFЛегковесный растровый выводКонвертировать SVG в изображение
XPSFixed-layout документСм. пример XPS ниже

Конвертация SVG с помощью Converter.convert_svg()

Класс Converter – самый простой способ конвертировать SVG-файлы. Создайте параметры сохранения для целевого формата, загрузите SVG-документ через SVGDocument и вызовите Converter.convert_svg().

1from aspose.svg import SVGDocument
2from aspose.svg.converters import Converter
3from aspose.svg.saving import ImageSaveOptions
4
5# Convert SVG to PNG using the high-level converter API
6options = ImageSaveOptions()
7
8with SVGDocument("image.svg") as document:
9    Converter.convert_svg(document, options, "image.png")

Конвертация SVG в XPS в Python

XPS – нишевый fixed-layout формат. Используйте его, когда Windows-документ, печатный или архивный процесс явно требует XPS. Для большинства сценариев обмена документами PDF обычно будет более удачным выбором.

1from aspose.svg import SVGDocument
2from aspose.svg.converters import Converter
3from aspose.svg.saving import XpsSaveOptions
4
5# Convert SVG to XPS when the target workflow requires XPS output
6options = XpsSaveOptions()
7
8with SVGDocument("document.svg") as document:
9    Converter.convert_svg(document, options, "document.xps")

Конвертация SVG с помощью render_to()

Метод render_to() отправляет SVG-контент на устройство рендеринга. Используйте этот сценарий, когда приложению нужен явный контроль над целевым устройством, например PdfDevice, XpsDevice или ImageDevice.

 1import os
 2from aspose.svg import SVGDocument
 3from aspose.svg.rendering.pdf import PdfDevice, PdfRenderingOptions
 4
 5# Render SVG to PDF using a rendering device
 6input_folder = "data/"
 7output_folder = "output/"
 8input_path = os.path.join(input_folder, "document.svg")
 9output_path = os.path.join(output_folder, "document.pdf")
10os.makedirs(output_folder, exist_ok=True)
11
12options = PdfRenderingOptions()
13options.jpeg_quality = 80
14
15with SVGDocument(input_path) as document:
16    with PdfDevice(options, output_path) as device:
17        document.render_to(device)

Параметры конвертации

В большинстве задач конвертации SVG используются параметры сохранения или параметры рендеринга, которые управляют качеством вывода, настройкой страницы, цветом фона и обработкой ресурсов.

Группа параметровИспользуется дляПримеры
ImageSaveOptionsВывод PNG, JPG, BMP, TIFF, GIFФормат изображения, фон, настройка страницы, разрешение
PdfSaveOptionsPDF-вывод через Converter.convert_svg()Настройка страницы, качество JPEG, метаданные, шифрование, фон
XpsSaveOptionsXPS-вывод через Converter.convert_svg()Настройка страницы, фон, разрешение
PdfRenderingOptionsPDF-вывод через PdfDeviceНастройка страницы, качество JPEG, разрешение, фон
RenderingOptionsСценарий на базе устройств рендерингаОбщие настройки, наследуемые форматно-специфичными параметрами

Пакетная конвертация

Пакетная конвертация использует те же API, что и конвертация одного файла. Переберите SVG-файлы в папке, создайте выходной путь для каждого файла и вызовите Converter.convert_svg() для каждого документа. См. Пакетная конвертация SVG-файлов в Python с примерами для PNG, JPG и PDF.

Онлайн-конвертер SVG

Используйте бесплатный онлайн SVG Converter, чтобы проверить результат конвертации перед реализацией в Python. Загрузите SVG-файл, выберите выходной формат и сравните созданный файл.

                
            

Онлайн-конвертер SVG для PDF, PNG, JPG, BMP, TIFF, GIF и XPS

Типичные ошибки и решения

ПроблемаВозможная причинаРешение
Выходной файл не был созданПапка вывода не существует или файл сохранен в другой рабочей директорииСоздайте папку через os.makedirs() и используйте явные пути
У конвертированного изображения неправильный фонSVG содержит прозрачные области, а фон не заданУкажите цвет фона в параметрах сохранения или рендеринга
Размер PDF или изображения не соответствует ожиданиямНастройка страницы не соответствует viewport SVG или границам содержимогоНастройте размер страницы, поля или sizing mode в нужном объекте параметров
Внешние изображения или шрифты отсутствуютОтносительные ресурсы не могут быть разрешены при конвертацииХраните ресурсы рядом с SVG или используйте корректные абсолютные пути/base path
Выходной файл слишком большойSVG сложный или параметры растра слишком высокиеУменьшите разрешение, качество JPEG, размер изображения или упростите SVG

FAQ

Как конвертировать SVG-файлы в Python?
Загрузите файл через SVGDocument, создайте параметры сохранения для целевого формата и вызовите Converter.convert_svg().

Какие выходные форматы SVG поддерживаются?
Aspose.SVG for Python via .NET поддерживает конвертацию в PDF, XPS, PNG, JPG, BMP, TIFF и GIF.

Что выбрать: Converter.convert_svg() или render_to()?
Используйте Converter.convert_svg() для обычной конвертации файлов. Используйте render_to(), когда нужен сценарий с устройством рендеринга: PdfDevice, XpsDevice или ImageDevice.

Можно ли конвертировать SVG из URL?
Да. Загрузите SVG URL с помощью SVGDocument, если доступна сеть, а затем конвертируйте его тем же API, что и локальные файлы.

Можно ли конвертировать SVG в XPS в Python?
Да. Создайте XpsSaveOptions и передайте его вместе с загруженным SVGDocument в Converter.convert_svg(). Используйте XPS только тогда, когда целевой процесс требует этот формат.

Можно ли пакетно конвертировать несколько SVG-файлов?
Да. Переберите входную папку, загрузите каждый .svg файл через SVGDocument и вызовите Converter.convert_svg() для каждого выходного файла.

Можно ли изменить размер выходного файла при конвертации?
Да. Настройте page setup, sizing, поля и разрешение через параметры сохранения или рендеринга для нужного формата.

Связанные статьи