Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Quick Answer: Use
SVGDocument para cargar SVG, cree
PdfSaveOptions y llame a
Converter.convert_svg(document, options, output_path) para guardar SVG como PDF. Use PdfSaveOptions para configurar tamaño de página, fondo, resolución, calidad JPEG, metadatos o cifrado.
PDF es un formato común cuando los gráficos SVG deben imprimirse, archivarse, adjuntarse a documentos o compartirse con diseño estable. Aspose.SVG for Python via .NET permite convertir SVG a PDF con una API de alto nivel o con un dispositivo de renderizado cuando necesita control explícito del pipeline.
Use Converter.convert_svg() para la mayoría de conversiones. Use SVGDocument.render_to() con PdfDevice cuando su flujo ya trabaja con dispositivos de renderizado.
Antes de ejecutar los ejemplos, instale Aspose.SVG for Python via .NET en su entorno Python.
La forma más sencilla es cargar el SVG con SVGDocument, crear PdfSaveOptions y llamar a 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")Use PdfSaveOptions cuando necesite controlar la salida PDF. El ejemplo define un fondo transparente, ajusta la página al contenido SVG, cambia la resolución de imágenes ráster y ajusta la calidad 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)| Propiedad | Qué controla |
|---|---|
| background_color | Color de fondo de página si el SVG tiene transparencia |
| page_setup | Tamaño de página, márgenes y modo de ajuste |
| horizontal_resolution | Resolución horizontal de recursos rasterizados en el PDF |
| vertical_resolution | Resolución vertical de recursos rasterizados en el PDF |
| jpeg_quality | Calidad JPEG de imágenes ráster incrustadas |
| document_info | Metadatos PDF como título, autor, asunto y palabras clave |
| encryption | Cifrado PDF y permisos |
PdfSaveOptions hereda ajustes de renderizado PDF de
PdfRenderingOptions, por lo que muchas propiedades son comunes para flujos con converter y con dispositivo.
El método render_to() envía el SVG cargado a un dispositivo de renderizado. Es útil cuando la aplicación ya trabaja con dispositivos Aspose.SVG o debe elegir el dispositivo de destino explícitamente.
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)| Método | Mejor para |
|---|---|
Converter.convert_svg() | Conversión directa SVG a PDF con código breve y opciones de guardado |
SVGDocument.render_to() | Flujos con dispositivos de salida como PdfDevice |
Para conversión SVG a PDF normal, empiece con Converter.convert_svg(). Use render_to() cuando necesite el patrón basado en dispositivo.
| Problema | Causa probable | Solución |
|---|---|---|
| El tamaño de página PDF no es el esperado | La configuración predeterminada no coincide con el viewport o contenido SVG | Configure options.page_setup.sizing, tamaño de página o márgenes |
| Las áreas transparentes aparecen con fondo no deseado | El visor PDF o el flujo de salida aplica su propio fondo | Defina options.background_color antes de convertir |
| Imágenes incrustadas borrosas o muy grandes | Resolución y calidad JPEG no coinciden con el destino | Ajuste horizontal_resolution, vertical_resolution y jpeg_quality |
| No se crea el PDF | La carpeta destino no existe o el script guarda en otro directorio | Cree la carpeta con os.makedirs() y use os.path.join() |
| Faltan texto o recursos externos | El SVG referencia fuentes, imágenes o CSS no resolubles | Use rutas correctas y mantenga recursos relativos al SVG |
Puede probar la conversión con el SVG to PDF Converter gratuito. Suba un SVG, ejecute la conversión y compare el resultado antes de implementarlo en Python.
Cargue SVG con SVGDocument, cree PdfSaveOptions y llame a Converter.convert_svg(document, options, output_path).
Sí. Use la propiedad page_setup de PdfSaveOptions o PdfRenderingOptions para configurar tamaño, márgenes y modo de ajuste.
Sí. Cree PdfRenderingOptions, abra un PdfDevice y llame a document.render_to(device).
El contenido transparente puede conservarse, pero el resultado visible depende del visor PDF y del flujo. Defina background_color si necesita un fondo predecible.
Reduzca jpeg_quality, baje la resolución de imágenes ráster incrustadas y simplifique SVG grandes o complejos antes de convertir.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.