Convertir SVG a PDF en Python

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.

Convertir SVG a PDF programáticamente

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.

Convertir SVG a PDF con Converter.convert_svg()

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")

Convertir SVG a PDF con opciones personalizadas

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)

Propiedades comunes de PdfSaveOptions

PropiedadQué controla
background_colorColor de fondo de página si el SVG tiene transparencia
page_setupTamaño de página, márgenes y modo de ajuste
horizontal_resolutionResolución horizontal de recursos rasterizados en el PDF
vertical_resolutionResolución vertical de recursos rasterizados en el PDF
jpeg_qualityCalidad JPEG de imágenes ráster incrustadas
document_infoMetadatos PDF como título, autor, asunto y palabras clave
encryptionCifrado 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.

Convertir SVG a PDF con render_to()

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)

Converter.convert_svg() frente a render_to()

MétodoMejor 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.

Errores comunes y soluciones

ProblemaCausa probableSolución
El tamaño de página PDF no es el esperadoLa configuración predeterminada no coincide con el viewport o contenido SVGConfigure options.page_setup.sizing, tamaño de página o márgenes
Las áreas transparentes aparecen con fondo no deseadoEl visor PDF o el flujo de salida aplica su propio fondoDefina options.background_color antes de convertir
Imágenes incrustadas borrosas o muy grandesResolución y calidad JPEG no coinciden con el destinoAjuste horizontal_resolution, vertical_resolution y jpeg_quality
No se crea el PDFLa carpeta destino no existe o el script guarda en otro directorioCree la carpeta con os.makedirs() y use os.path.join()
Faltan texto o recursos externosEl SVG referencia fuentes, imágenes o CSS no resolublesUse rutas correctas y mantenga recursos relativos al SVG

Conversor SVG a PDF en línea

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.

                
            

Conversor SVG a PDF en línea

FAQ

¿Cómo convierto SVG a PDF en Python?

Cargue SVG con SVGDocument, cree PdfSaveOptions y llame a Converter.convert_svg(document, options, output_path).

¿Puedo definir el tamaño de página PDF durante la conversión?

Sí. Use la propiedad page_setup de PdfSaveOptions o PdfRenderingOptions para configurar tamaño, márgenes y modo de ajuste.

¿Puedo convertir SVG a PDF sin usar Converter?

Sí. Cree PdfRenderingOptions, abra un PdfDevice y llame a document.render_to(device).

¿La conversión SVG a PDF conserva transparencia?

El contenido transparente puede conservarse, pero el resultado visible depende del visor PDF y del flujo. Defina background_color si necesita un fondo predecible.

¿Cómo reduzco el tamaño del PDF generado?

Reduzca jpeg_quality, baje la resolución de imágenes ráster incrustadas y simplifique SVG grandes o complejos antes de convertir.

Artículos relacionados