Opciones de renderizado – Personalizar el renderizado HTML
Las opciones de renderizado proporcionan un control detallado sobre cómo el dispositivo de renderizado procesa el contenido. Cada dispositivo – PdfDevice, XpsDevice, DocDevice, y ImageDevice – tiene su propia clase de opciones: PdfRenderingOptions, XpsRenderingOptions, DocRenderingOptions, e ImageRenderingOptions. Con estas opciones, puede ajustar el tamaño de página, los márgenes y los colores, así como aplicar configuraciones específicas del dispositivo, como añadir una contraseña de seguridad a los archivos PDF. La personalización es crucial para lograr los resultados deseados, ya se trate de reducir el tamaño del archivo ajustando la calidad y la resolución de la imagen o de mejorar la legibilidad mediante un diseño de página y un formato de texto optimizados.
En este artículo, se exploran las opciones de renderizado en Aspose.HTML for Python via .NET, mostrando cómo personalizar la conversión de contenido HTML en formatos de salida como PDF, XPS, DOCX e imágenes. Estas opciones incluyen ajustes generales como el tamaño de página, el color de fondo y la resolución, así como ajustes específicos del dispositivo, como la compresión de imágenes, la seguridad de PDF y la incrustación de fuentes, que permiten un control total sobre el resultado final.
Aquí encontrarás ejemplos de código Python que demuestran el uso de parámetros específicos de dispositivo. El uso de opciones generales se tratará en el capítulo “Artículos prácticos” (en preparación).
Para saber más sobre el proceso de renderizado, lea el artículo Dispositivo de renderizado.
PdfRenderingOptions
La clase
PdfRenderingOptions, junto con las opciones generales, soporta varios parámetros específicos, como jpeg_quality, document_info, encryption, form_field_behaviour, y is_tagged_pdf.
| Property | Description |
|---|---|
| jpeg_quality | Specifies the quality of JPEG compression for images. The default value is 95. |
| document_info | This property contains information about the output PDF document. |
| encryption | This property gets or sets encryption details. If it is not set, then no encryption will be performed. |
| form_field_behaviour | This property specifies the behavior of form fields in the output PDF document. |
| is_tagged_pdf | If is_tagged_pdf = true, a tag structure will be added to the PDF document during rendering. |
La propiedad form_field_behaviour se utiliza para especificar el comportamiento de los campos de formulario en un documento PDF. Para saber qué significa aplanar un archivo PDF y cómo hacerlo utilizando la biblioteca Aspose.HTML for Python via .NET, consulte la sección
Conversión de HTML a PDF y PDF flattening.
El siguiente código de Python muestra cómo añadir encriptación a un archivo PDF utilizando la clase PdfRenderingOptions:
1# Render HTML to PDF with password protection using Python
2
3import os
4import aspose.html as ah
5import aspose.html.rendering as rn
6import aspose.html.rendering.pdf as rp
7import aspose.html.rendering.pdf.encryption as rpe
8
9# Setup input and output directories
10data_dir = "data/"
11output_dir = "output/"
12os.makedirs(output_dir, exist_ok=True)
13
14# Prepare path to the source HTML file
15document_path = os.path.join(data_dir, "document.html")
16
17# Initialize an HTML document from the file
18doc = ah.HTMLDocument(document_path)
19
20# Create an instance of the HTML Renderer
21renderer = rn.HtmlRenderer()
22
23# Prepare path to save the converted PDF
24save_path = os.path.join(output_dir, "convert-html-to-pdf-with-encryption.pdf")
25
26# Create PDF rendering options and set password protection
27options = rp.PdfRenderingOptions()
28options.encryption = rpe.PdfEncryptionInfo(
29 user_password="user_pwd",
30 owner_password="owner_pwd",
31 permissions=rpe.PdfPermissions.PRINT_DOCUMENT,
32 encryption_algorithm=rpe.PdfEncryptionAlgorithm.RC4_128
33)
34
35# Create the PDF device with options and output path
36device = rp.PdfDevice(options, save_path)
37
38# Render HTML to PDF
39renderer.render(device, doc)El ejemplo anterior muestra cómo crear una nueva instancia de PdfRenderingOptions y establecer las opciones de cifrado para un archivo de salida PDF. Para ello, es necesario crear un objeto PdfEncryptionInfo, que define la configuración de cifrado para el archivo PDF. El constructor recibe cuatro parámetros:
user_passwordyowner_password, que son necesarias para abrir y trabajar con el archivo PDF;permissions– un conjunto de permisos permitidos para un archivo PDF. En este caso, se especificaPdfPermissions.PRINT_DOCUMENT, que permite al usuario imprimir el documento;encryption_algorithm– el algoritmo de cifrado utilizado para proteger el archivo PDF. En este caso, se utilizaPdfEncryptionAlgorithm.RC4_128, que es un algoritmo de cifrado RC4 de 128 bits.
ImageRenderingOptions
La clase ImageRenderingOptions soporta todas las opciones generales y permite configurar opciones específicas, como el antialiasing, la configuración del renderizado de texto, la selección del formato de imagen y la compresión de la imagen.
| Property | Description |
|---|---|
| compression | Sets Tagged Image File Format (TIFF) compression. By default, this property is LZW. |
| format | Sets the
ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG. |
| use_antialiasing | This property defines the rendering quality of the image by controlling the use of antialiasing. Antialiasing is enabled by default. |
| text | Gets a TextOptions object which is used for configuration of text rendering. |
Veamos cómo utilizar un objeto especializado ImageRenderingOptions para establecer el formato TIFF y la compresión de la imagen:
1# Render HTML to TIFF with custom settings using Python
2
3import os
4import aspose.html as ah
5import aspose.html.rendering.image as ri
6
7# Setup input and output directories
8data_dir = "data/"
9output_dir = "output/"
10os.makedirs(output_dir, exist_ok=True)
11
12# Prepare paths for input HTML and output TIFF file
13document_path = os.path.join(data_dir, "html_file.html")
14save_path = os.path.join(output_dir, "document.tiff")
15
16# Initialize an HTML document from the file
17doc = ah.HTMLDocument(document_path)
18
19# Create rendering options for image format (TIFF in this case)
20image_options = ri.ImageRenderingOptions(ri.ImageFormat.TIFF)
21image_options.compression = ri.Compression.NONE
22
23# Create an ImageDevice and specify options and output file
24device = ri.ImageDevice(image_options, save_path)
25
26# Render HTML to TIFF
27doc.render_to(device)XpsRenderingOptions
XpsRenderingOptions heredan todas las opciones de la clase base RenderingOptions. Puede configurar el tamaño de página, los márgenes, el color de fondo y otras opciones comunes al generar archivos XPS.
1# Render HTML to XPS with custom page settings using Python
2
3import os
4import aspose.html as ah
5import aspose.html.rendering.xps as rx
6import aspose.html.drawing as dr
7
8# Setup input and output directories
9data_dir = "data/"
10output_dir = "output/"
11os.makedirs(output_dir, exist_ok=True)
12
13# Prepare a path to the source HTML file
14document_path = os.path.join(data_dir, "document.html")
15
16# Initialize the HTML document from the file
17doc = ah.HTMLDocument(document_path)
18
19# Create an instance of XPS Rendering Options
20options = rx.XpsRenderingOptions()
21
22# Set custom page size (5 x 2 inches)
23options.page_setup.any_page = dr.Page(dr.Size(dr.Length.from_inches(5.0), dr.Length.from_inches(2.0)))
24
25# Prepare a path to save the converted file
26save_path = os.path.join(output_dir, "document-options.xps")
27
28# Create an XpsDevice with the specified options and output file
29device = rx.XpsDevice(options, save_path)
30
31# Render HTML to XPS
32doc.render_to(device)DocRenderingOptions
La clase
DocRenderingOptions soporta todas las opciones generales y permite personalizar las propiedades font_embedding_rule y document_format para el fichero de salida.
| Property | Description |
|---|---|
| font_embedding_rule | This property gets or sets the font embedding rule. Available values are Full and None. The default value is None. |
| document_format | This property gets or sets the file format of the output document. The default value is DOCX. |
El siguiente ejemplo muestra cómo personalizar las opciones de representación de un documento DOCX de salida estableciendo el tamaño de página y la regla de incrustación de fuentes:
1# Render HTML to DOCX with custom settings using Python
2
3import os
4import aspose.html as ah
5import aspose.html.rendering.doc as rd
6import aspose.html.drawing as dr
7
8# Setup input and output directories
9data_dir = "data/"
10output_dir = "output/"
11os.makedirs(output_dir, exist_ok=True)
12
13# Prepare a path to the source HTML file
14document_path = os.path.join(data_dir, "nature.html")
15
16# Initialize the HTML document from the file
17doc = ah.HTMLDocument(document_path)
18
19# Create an instance of DocRenderingOptions and set a custom page size
20options = rd.DocRenderingOptions()
21options.page_setup.any_page = dr.Page(dr.Size(dr.Length.from_inches(8.0), dr.Length.from_inches(10.0)))
22options.font_embedding_rule = rd.FontEmbeddingRule.FULL
23
24# Prepare a path to save the converted file
25save_path = os.path.join(output_dir, "nature-options.docx")
26
27# Create a DocDevice with the specified options and output file
28device = rd.DocDevice(options, save_path)
29
30# Render HTML to DOCX
31doc.render_to(device)Aspose.HTML ofrece Convertidores en línea gratuitos que pueden convertir archivos HTML, XHTML, MHTML, EPUB, XML y Markdown a una serie de formatos populares. Puedes convertir fácilmente tus documentos basados en HTML a PDF, XPS, DOCX, JPG, PNG, GIF, TIFF y otros. Sólo tienes que seleccionar un archivo, elegir el formato a convertir y listo.
