Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Quick Answer: Загрузите SVG через
SVGDocument, создайте
PdfSaveOptions и вызовите
Converter.convert_svg(document, options, output_path), чтобы сохранить SVG как PDF. Используйте PdfSaveOptions, если нужно настроить размер страницы, фон, разрешение, качество JPEG, метаданные или шифрование.
PDF – распространенный выходной формат, когда SVG-графику нужно напечатать, архивировать, вложить в документы или передать в формате, который сохраняет макет в разных просмотрщиках. Aspose.SVG for Python via .NET позволяет конвертировать SVG в PDF через высокоуровневый converter API или через устройство рендеринга, если нужен явный контроль над пайплайном.
Используйте Converter.convert_svg() для большинства задач конвертации файлов. Используйте
SVGDocument.render_to() с
PdfDevice, если ваш процесс уже работает с устройствами рендеринга или требует подхода на базе устройства.
Самый простой способ конвертировать SVG в PDF – загрузить SVG-документ через SVGDocument, создать PdfSaveOptions и вызвать Converter.convert_svg().
1from aspose.svg import SVGDocument
2from aspose.svg.converters import Converter
3from aspose.svg.saving import PdfSaveOptions
4
5# Convert an SVG file to PDF using the default save options
6options = PdfSaveOptions()
7
8with SVGDocument("document.svg") as document:
9 Converter.convert_svg(document, options, "document.pdf")Используйте PdfSaveOptions, когда нужно управлять PDF-выводом. Следующий пример задает прозрачный фон, подгоняет страницу под содержимое SVG, изменяет разрешение растровых изображений и настраивает качество JPEG.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.drawing import Resolution
5from aspose.svg.rendering import SizingType
6from aspose.svg.saving import PdfSaveOptions
7from aspose.pydrawing import Color
8
9# Convert SVG to PDF and customize page sizing and image quality
10input_folder = "data/"
11output_folder = "output/"
12input_path = os.path.join(input_folder, "document.svg")
13output_path = os.path.join(output_folder, "document.pdf")
14os.makedirs(output_folder, exist_ok=True)
15
16options = PdfSaveOptions()
17options.background_color = Color.from_argb(0, 255, 255, 255)
18options.page_setup.sizing = SizingType.FIT_CONTENT
19options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
20options.vertical_resolution = Resolution.from_dots_per_inch(96.0)
21options.jpeg_quality = 80
22
23with SVGDocument(input_path) as document:
24 Converter.convert_svg(document, options, output_path)| Свойство | Что контролирует |
|---|---|
| background_color | Цвет фона страницы, если в SVG есть прозрачные области |
| page_setup | Размер страницы, поля и режим подгонки |
| horizontal_resolution | Горизонтальное разрешение для растровых ресурсов внутри PDF |
| vertical_resolution | Вертикальное разрешение для растровых ресурсов внутри PDF |
| jpeg_quality | Качество JPEG-сжатия для встроенных растровых изображений |
| document_info | Метаданные PDF: title, author, subject, keywords |
| encryption | Шифрование PDF и настройки разрешений |
PdfSaveOptions наследует настройки PDF-рендеринга от
PdfRenderingOptions, поэтому многие свойства совпадают для сценариев через converter и через устройство рендеринга.
Метод render_to() отправляет загруженный SVG-документ на устройство рендеринга. Такой подход полезен, если приложение уже работает с устройствами Aspose.SVG или должно явно выбирать целевое устройство.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.rendering import SizingType
4from aspose.svg.rendering.pdf import PdfDevice, PdfRenderingOptions
5
6# Render SVG to PDF through a PdfDevice
7input_folder = "data/"
8output_folder = "output/"
9input_path = os.path.join(input_folder, "document.svg")
10output_path = os.path.join(output_folder, "document.pdf")
11os.makedirs(output_folder, exist_ok=True)
12
13options = PdfRenderingOptions()
14options.jpeg_quality = 80
15options.page_setup.sizing = SizingType.FIT_CONTENT
16
17with SVGDocument(input_path) as document:
18 with PdfDevice(options, output_path) as device:
19 document.render_to(device)| Метод | Когда использовать |
|---|---|
| Converter.convert_svg() | Прямая конвертация SVG в PDF с коротким кодом и параметрами сохранения |
| SVGDocument.render_to() | Сценарии с устройствами вывода, например PdfDevice |
Для обычной конвертации SVG в PDF начинайте с Converter.convert_svg(): он короче и естественно соответствует задаче конвертации файла. Используйте render_to(), когда нужен подход на базе устройства.
| Проблема | Возможная причина | Решение |
|---|---|---|
| Размер страницы PDF не тот, что ожидался | Настройки страницы по умолчанию не соответствуют viewport SVG или границам содержимого | Задайте options.page_setup.sizing и явно настройте размер страницы или поля |
| Прозрачные области SVG отображаются с нежелательным фоном | PDF-просмотрщик или последующий процесс применяет собственный фон | Задайте options.background_color перед конвертацией |
| Встроенные изображения выглядят размытыми или слишком большими | Разрешение и качество JPEG не соответствуют целевому выводу | Настройте horizontal_resolution, vertical_resolution и jpeg_quality |
| PDF не создается | Папка вывода не существует или скрипт сохраняет файл в другой рабочей директории | Создайте папку через os.makedirs() и собирайте пути через os.path.join() |
| Текст или внешние ресурсы отсутствуют | SVG ссылается на шрифты, изображения или CSS, которые не удается разрешить | Используйте корректные пути и держите внешние ресурсы рядом с SVG-документом |
Вы можете проверить конвертацию SVG в PDF с помощью бесплатного онлайн SVG to PDF Converter. Загрузите SVG-файл, выполните конвертацию и сравните результат перед реализацией того же сценария в Python.
Загрузите SVG через SVGDocument, создайте PdfSaveOptions и вызовите Converter.convert_svg(document, options, output_path).
Да. Используйте свойство page_setup у PdfSaveOptions или PdfRenderingOptions, чтобы настроить размер страницы, поля и режим подгонки.
Да. Создайте PdfRenderingOptions, откройте PdfDevice и вызовите document.render_to(device).
Прозрачный SVG-контент может сохраняться, но видимый результат зависит от PDF-просмотрщика и последующего процесса. Укажите background_color, если нужен предсказуемый фон страницы.
Снизьте jpeg_quality, уменьшите разрешение встроенных растровых изображений и упростите крупный или сложный SVG перед конвертацией.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.