Convertir SVG a PDF en Python
En este artículo, encontrará información sobre cómo convertir SVG a PDF usando los métodos convert_svg() de la clase Converter y cómo aplicar PdfSaveOptions. Con Aspose.HTML for Python via .NET, puede convertir formato SVG a PDF mediante programación con control total sobre una amplia gama de parámetros de conversión. Además, puede probar un convertidor SVG en línea para probar la funcionalidad de la API de Python y convertir SVG sobre la marcha.
Convertidor SVG en línea
Puede convertir SVG a otros formatos con la API Aspose.HTML en tiempo real. Cargue SVG desde su sistema de archivos local o URL, seleccione el formato de salida y ejecute el ejemplo. Las opciones de guardado están configuradas de forma predeterminada. Recibirá inmediatamente el resultado de la conversión como un archivo separado.
Convertir SVG a PDF
Consideremos cómo convertir un documento SVG a un formato de archivo PDF. Los métodos convert_svg() de la clase Converter se utilizan principalmente como la forma más sencilla de convertir un archivo SVG a varios formatos. Debes seguir algunos pasos:
- Cargue un documento SVG. Para convertir, puede cargar SVG desde un archivo, URL o cadena de código. En el siguiente ejemplo, creamos un archivo SVG a partir de código.
- Cree un nuevo objeto PdfSaveOptions. Si no configura opciones específicas para guardar el archivo PDF resultante, se utilizarán las opciones predeterminadas.
- Utilice el método
convert_svg(
content, base_uri, options, output_path
) de la clase Converter para guardar SVG como un archivo PDF.
1import os
2from aspose.html import *
3from aspose.html.converters import *
4from aspose.html.saving import *
5
6# Setup directories and define paths
7output_dir = "output/"
8if not os.path.exists(output_dir):
9 os.makedirs(output_dir)
10save_path = os.path.join(output_dir, "circles.pdf")
11
12# SVG code
13svg_code = """
14<svg xmlns="http://www.w3.org/2000/svg">
15 <circle id="base" cx="100" cy="100" r="80" fill="teal" stroke="salmon" stroke-width="10" />
16 <g>
17 <use href="#base" transform="translate(120, 10) scale(0.9)" />
18 <use href="#base" transform="translate(240, 20) scale(0.8)" />
19 <use href="#base" transform="translate(360, 30) scale(0.7)" />
20 <use href="#base" transform="translate(480, 40) scale(0.6)" />
21 <use href="#base" transform="translate(600, 50) scale(0.5)" />
22 </g>
23</svg>
24"""
25
26# Initialize PdfSaveOptions
27options = PdfSaveOptions()
28
29# Convert SVG to PDF
30Converter.convert_svg(svg_code, ".", options, save_path)
La figura muestra la calidad de la representación de SVG a PDF utilizando un fragmento del archivo circles.pdf
como ejemplo. Hablamos de un fragmento de archivo porque el tamaño completo del archivo corresponderá a una página A4 ya que las opciones de guardado están configuradas de forma predeterminada.
Convierta SVG a PDF usando PdfSaveOptions
Aspose.HTML for Python via .NET proporciona la clase
PdfSaveOptions, que le brinda más control sobre cómo se guardan los documentos en formato PDF. Algunas propiedades de esta clase heredan propiedades de clases base, como
PdfRenderingOptions o RenderingOptions. Aquí hay una descripción de algunas propiedades disponibles en PdfSaveOptions
:
- page_setup: esta propiedad proporciona acceso a un objeto PageSetup utilizado para configurar el diseño y los ajustes de las páginas PDF de salida para ajustarse a requisitos específicos de impresión o visualización.
- horizontal_resolution: esta propiedad controla la resolución horizontal tanto para las imágenes internas utilizadas durante el procesamiento como para cualquier imagen externa incluida en el HTML. De forma predeterminada, está configurado en 300 ppp.
- vertical_resolution: similar a la resolución_horizontal, esta propiedad administra la resolución vertical de imágenes internas y externas durante la generación de PDF. Al igual que su contraparte horizontal, el valor predeterminado es 300 ppp.
- background_color: esta propiedad establece o recupera el color de fondo que llena cada página del documento PDF. El valor predeterminado es transparente, pero se puede personalizar para adaptarlo a las preferencias estéticas o de marca, lo que garantiza la coherencia en todas las páginas.
- jpeg_quality: esta propiedad determina la calidad de compresión JPEG utilizada para las imágenes incrustadas en un documento PDF. La calidad predeterminada está establecida en 95, lo que proporciona un buen equilibrio entre la fidelidad de la imagen y el tamaño del archivo. Establecer esta propiedad le permite optimizar el tamaño del archivo o la calidad de la imagen según sus necesidades específicas.
- css: esta propiedad utiliza un objeto
CssOptions
para configurar el procesamiento de propiedades CSS durante la conversión de HTML a PDF. Permite un control preciso sobre cómo se interpretan y aplican los estilos del HTML en el PDF resultante. - encryption: esta propiedad proporciona información detallada sobre el cifrado de documentos PDF, incluida la protección con contraseña y la configuración de permisos. Si no está configurado, no se aplica ningún cifrado, pero configurar esta propiedad le permite distribuir y controlar el acceso a contenido PDF confidencial de forma segura.
- is_tagged_pdf: cuando se establece en verdadero, se crea un diseño etiquetado dentro del documento PDF, lo que mejora la accesibilidad para usuarios con discapacidades. Esto garantiza que el contenido esté estructurado adecuadamente y sea navegable utilizando tecnología de asistencia y cumpla con los estándares de accesibilidad.
Para convertir SVG a PDF con la especificación PdfSaveOptions
, debe seguir algunos pasos:
- Cargue un archivo SVG usando uno de los constructores SVGDocument() de la clase SVGDocument.
- Cree un nuevo objeto PdfSaveOptions y especifique las opciones de guardado.
- Utilice uno de los métodos
convert_svg() para guardar SVG como un archivo PDF. En el ejemplo, el método convert_svg() toma el
document
, lasoptions
y la ruta del archivo de salidasave_path
y realiza la operación de conversión.
El siguiente fragmento de código de Python configura las opciones de guardado de PDF para establecer el tamaño y los márgenes de la página, aplicar reglas CSS para la impresión, comprimir imágenes JPEG con una calidad del 80 % y habilitar archivos PDF etiquetados para mejorar la accesibilidad:
1import os
2from aspose.html import *
3from aspose.html.saving import *
4from aspose.html.drawing import *
5from aspose.html.converters import *
6from aspose.html.dom.svg import *
7
8# Setup directories and define paths
9output_dir = "output/"
10input_dir = "data/"
11if not os.path.exists(output_dir):
12 os.makedirs(output_dir)
13
14document_path = os.path.join(input_dir, "document.svg")
15save_path = os.path.join(output_dir, "svg-to-pdf.pdf")
16
17# Load an SVG document
18document = SVGDocument(document_path)
19
20# Initialize PdfSaveOptions
21options = PdfSaveOptions()
22
23# Customize save options for PDF
24options.page_setup.any_page = Page(Size(600, 500), Margin(20, 20, 10, 10))
25options.css.media_type.PRINT
26options.jpeg_quality = 80
27options.is_tagged_pdf = True
28
29# Convert SVG to PDF
30Converter.convert_svg(document, options, save_path)
En el ejemplo anterior, usamos:
- la propiedad
page_setup
para personalizar el diseño de las páginas PDF; - la propiedad
css.media_type
para especificar el tipo de medio para CSS durante el proceso de renderizado. En este ejemplo, está configurado enPRINT
, lo que significa que las reglas CSS definidas para medios impresos se aplicarán al generar el PDF; - la propiedad
jpeg_quality
para establecer la calidad de la compresión JPEG para imágenes dentro del PDF. Está configurado en “80”, lo que significa que las imágenes JPEG en el PDF se comprimirán al 80% de su calidad original; - la propiedad
is_tagged_pdf
que habilita o deshabilita la creación de una estructura de etiquetas en el PDF, lo cual es importante para la accesibilidad. Establecer esta propiedad enTrue
garantiza que el PDF generado se etiquetará, haciéndolo más accesible para los usuarios que dependen de tecnologías de asistencia como lectores de pantalla.
Compruebe la calidad de la conversión de SVG a PDF con nuestro Convertidor de SVG a PDF en línea. Sube, convierte tus archivos y obtén resultados en unos segundos. ¡Pruebe nuestro potente conversor de SVG a PDF gratis ahora!
Descargue nuestro Aspose.HTML para Python a través de la biblioteca .NET le permite convertir con éxito, rápida y fácilmente sus documentos HTML, MHTML, EPUB, SVG y Markdown a los formatos más populares.