Renderizadores – Renderiza HTML, MHTML, EPUB y SVG en Python

Renderizadores – Renderers

El espacio de nombres aspose.html.rendering consta de numerosos objetos renderizadores y clases de opciones de bajo nivel apropiadas, que se encargan de renderizar documentos en la implementación IDevice. Aspose.HTML para Python a través de la API .NET proporciona la siguiente realización de renderizadores: HtmlRenderer, SvgRenderer, MhtmlRenderer y EpubRenderer, que se utilizan para renderizar documentos HTML, SVG, MHTML y EPUB, respectivamente.

Este artículo describe los escenarios de conversión de archivos HTML a otros formatos populares utilizando los métodos render() del espacio de nombres aspose.html.rendering.

HtmlRenderer

La clase HtmlRenderer se puede utilizar para renderizar archivos HTML en varios formatos populares, permitiendo la personalización de las opciones de renderizado y el control sobre la salida del proceso. Veamos cómo utilizar la clase HtmlRenderer para convertir HTML a PDF con opciones de salida personalizadas:

  1. Inicializa un documento HTML utilizando la clase HTMLDocument.
  2. Crea un nuevo objeto HtmlRenderer.
  3. Cree una instancia de PdfRenderingOptions y personalice las opciones para su documento PDF de salida. Por ejemplo, puede establecer la propiedad any_page de la clase PageSetup para crear un nuevo objeto Page con unas dimensiones de 600 píxeles por 200 píxeles. Además, puede configurar la propiedad encryption, especificando las contraseñas de usuario y propietario, las acciones permitidas y el algoritmo de cifrado para el archivo PDF de salida.
  4. Utilice el constructor PdfDevice(options, savePath) para crear un objeto de la clase PdfDevice.
  5. Llama al método render(device, document) para renderizar HTML a PDF con las opciones de renderizado especificadas.
 1# Render HTML to PDF with custom page settings 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.drawing as dr
 8import aspose.html.rendering.pdf.encryption as rpe
 9
10# Setup input and output directories
11data_dir = "data/"
12output_dir = "output/"
13os.makedirs(output_dir, exist_ok=True)
14
15# Prepare path to the source HTML file
16document_path = os.path.join(data_dir, "document.html")
17
18# Initialize an HTML document from the file
19doc = ah.HTMLDocument(document_path)
20
21# Create an instance of the HTML Renderer
22renderer = rn.HtmlRenderer()
23
24# Prepare path to save the converted PDF
25save_path = os.path.join(output_dir, "render-html-with-options.pdf")
26
27# Create PDF rendering options and set custom page size
28options = rp.PdfRenderingOptions()
29options.page_setup.any_page = dr.Page(dr.Size(600, 200))
30
31# Setup PDF encryption
32options.encryption = rpe.PdfEncryptionInfo(
33    user_password="user_pwd",
34    owner_password="owner_pwd",
35    permissions=rpe.PdfPermissions.PRINT_DOCUMENT,
36    encryption_algorithm=rpe.PdfEncryptionAlgorithm.RC4_128
37)
38
39# Create the PDF device with options and output path
40device = rp.PdfDevice(options, save_path)
41
42# Render HTML to PDF
43renderer.render(device, doc)

Las opciones de renderizado te dan un control adicional sobre el proceso de renderizado. Para saber más sobre ellas, lee el artículo Opciones de renderizado.

Para obtener más información sobre el proceso de renderizado, consulte el artículo Dispositivo de renderizado.

SvgRenderer

La clase SvgRenderer permite convertir archivos SVG a otros formatos de archivo, como PDF, XPS, DOCX y formatos de imagen. El siguiente ejemplo muestra cómo utilizar la clase SvgRenderer para convertir SVG a PNG especificando un tamaño de página personalizado:

  1. Inicializar un documento SVG. Utilice uno de los constructores SVGDocument() para crear una instancia de SVGDocument.
  2. Crea un nuevo objeto SvgRenderer.
  3. Cree una instancia de ImageRenderingOptions y establezca opciones personalizadas para la imagen PNG de salida. En el ejemplo, especificamos la propiedad any_page que establece un nuevo objeto Page con un tamaño de página de 400x300 píxeles.
  4. Utilice el constructor ImageDevice(options, savePath) para crear un objeto de la clase ImageDevice.
  5. Llama al método render(device, document) para renderizar SVG a PNG con las opciones de renderizado especificadas.
 1# Render SVG to PNG with custom page settings using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.rendering.image as ri
 6import aspose.html.rendering as rn
 7import aspose.html.drawing as dr
 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 SVG file
15doc_path = os.path.join(data_dir, "flower.svg")
16save_path = os.path.join(output_dir, "render-svg-with-options.png")
17
18# Initialize an SVG document from the file
19doc = ah.dom.svg.SVGDocument(doc_path)
20
21# Create an instance of the SVG Renderer
22renderer = rn.SvgRenderer()
23
24# Create the instance of Rendering Options and set a custom page-size
25options = ri.ImageRenderingOptions()
26options.page_setup.any_page = dr.Page(dr.Size(400, 300))
27
28# Create the PNG device with options and output path
29device = ri.ImageDevice(options, save_path)
30
31# Render SVG to PNG
32renderer.render(device, doc)

MhtmlRenderer

Este ejemplo ilustra cómo convertir un documento MHTML a PDF utilizando la clase MhtmlRenderer con las opciones de renderizado especificadas:

  1. Abra un documento MHTML existente.
  2. Crea una instancia de la clase MhtmlRenderer usando el constructor MhtmlRenderer().
  3. Inicializa la clase PdfRenderingOptions y establece las opciones de renderizado.
  4. Crear una instancia de la clase PdfDevice.
  5. Llama al método render(device, stream) para renderizar MHTML a PDF.
 1# Render MHTML to PDF with custom page settings using Python
 2
 3import os
 4import aspose.html.rendering.pdf as rp
 5import aspose.html.rendering as rn
 6import aspose.html.drawing as dr
 7import aspose.pydrawing as pd
 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 MHTML file
15epub_path = os.path.join(data_dir, "document.mht")
16save_path = os.path.join(output_dir, "render-mhtml-with-options.pdf")
17
18# Open the MHTML file in binary mode
19with open("document.mht", 'rb') as stream:
20
21    # Create an instance of MHTML Renderer
22    renderer = rn.MhtmlRenderer()
23
24    # Create PDF rendering options and set a custom page size and background color
25    options = rp.PdfRenderingOptions()
26    options.page_setup.any_page = dr.Page(dr.Size(800, 400))
27    options.background_color = pd.Color.bisque
28
29    # Create an instance of PdfDevice for output
30    device = rp.PdfDevice(options, save_path)
31
32    # Render MHTML to PDF
33    renderer.render(device, stream)

EpubRenderer

La clase EpubRenderer permite convertir archivos EPUB a otros formatos como PDF, XPS, DOCX e imágenes. Los siguientes ejemplos de Python muestran cómo convertir EPUB a DOCX con una configuración de tamaño de página personalizada:

  1. Abrir un archivo EPUB existente.
  2. Crea una instancia de la clase EpubRenderer.
  3. Inicializa la clase DocRenderingOptions y establece las opciones de renderizado.
  4. Crear una instancia de la clase DocDevice.
  5. Llama al método render(device, stream) para renderizar EPUB a DOCX.
 1# Render EPUB to DOCX with custom page settings using Python
 2
 3import os
 4import aspose.html.rendering.doc as rd
 5import aspose.html.rendering as rn
 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 path to the source EPUB file
14epub_path = os.path.join(data_dir, "input.epub")
15save_path = os.path.join(output_dir, "render-epub-with-options.docx")
16
17# Open the EPUB file in binary mode
18with open(epub_path, "rb") as stream:
19
20    # Create an instance of EPUB Renderer
21    renderer = rn.EpubRenderer()
22
23    # Create DOC rendering options and set a custom page size
24    options = rd.DocRenderingOptions()
25    options.page_setup.any_page = dr.Page(dr.Size(800, 400))
26
27    # Create an instance of DocDevice for output
28    device = rd.DocDevice(options, save_path)
29
30    # Render EPUB to DOCX
31    renderer.render(device, stream)

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.

Texto “Conversores en línea gratuitos”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.