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.
 1import os
 2import aspose.html as ah
 3import aspose.html.rendering as rn
 4import aspose.html.rendering.pdf as rp
 5import aspose.html.drawing as dr
 6import aspose.html.rendering.pdf.encryption as rpe
 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 HTML file
14document_path = os.path.join(data_dir, "document.html")
15
16# Initialize an HTML document from the file
17doc = ah.HTMLDocument(document_path)
18
19# Create an instance of the HTML Renderer
20renderer = rn.HtmlRenderer()
21
22# Prepare path to save the converted PDF
23save_path = os.path.join(output_dir, "render-html-with-options.pdf")
24
25# Create PDF rendering options and set custom page size
26options = rp.PdfRenderingOptions()
27options.page_setup.any_page = dr.Page(dr.Size(600, 200))
28
29# Setup PDF encryption
30options.encryption = rpe.PdfEncryptionInfo(
31    user_password="user_pwd",
32    owner_password="owner_pwd",
33    permissions=rpe.PdfPermissions.PRINT_DOCUMENT,
34    encryption_algorithm=rpe.PdfEncryptionAlgorithm.RC4_128
35)
36
37# Create the PDF device with options and output path
38device = rp.PdfDevice(options, save_path)
39
40# Render HTML to PDF
41renderer.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.
 1import os
 2import aspose.html as ah
 3import aspose.html.rendering.image as ri
 4import aspose.html.rendering as rn
 5import aspose.html.drawing as dr
 6
 7# Setup input and output directories
 8data_dir = "data/"
 9output_dir = "output/"
10os.makedirs(output_dir, exist_ok=True)
11
12# Prepare path to the source SVG file
13doc_path = os.path.join(data_dir, "flower.svg")
14save_path = os.path.join(output_dir, "render-svg-with-options.png")
15
16# Initialize an SVG document from the file
17doc = ah.dom.svg.SVGDocument(doc_path)
18
19# Create an instance of the SVG Renderer
20renderer = rn.SvgRenderer()
21
22# Create the instance of Rendering Options and set a custom page-size
23options = ri.ImageRenderingOptions()
24options.page_setup.any_page = dr.Page(dr.Size(400, 300))
25
26# Create the PNG device with options and output path
27device = ri.ImageDevice(options, save_path)
28
29# Render SVG to PNG
30renderer.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.
 1import os
 2import aspose.html.rendering.pdf as rp
 3import aspose.html.rendering as rn
 4import aspose.html.drawing as dr
 5import aspose.pydrawing as pd
 6
 7# Setup input and output directories
 8data_dir = "data/"
 9output_dir = "output/"
10os.makedirs(output_dir, exist_ok=True)
11
12# Prepare path to the source MHTML file
13epub_path = os.path.join(data_dir, "document.mht")
14save_path = os.path.join(output_dir, "render-mhtml-with-options.pdf")
15
16# Open the MHTML file in binary mode
17with open("document.mht", 'rb') as stream:
18
19    # Create an instance of MHTML Renderer
20    renderer = rn.MhtmlRenderer()
21
22    # Create PDF rendering options and set a custom page size
23    options = rp.PdfRenderingOptions()
24    options.page_setup.any_page = dr.Page(dr.Size(800, 400))
25    options.background_color = pd.Color.bisque
26
27    # Create an instance of PdfDevice for output
28    device = rp.PdfDevice(options, save_path)
29
30    # Render MHTML to PDF
31    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.
 1import os
 2import aspose.html.rendering.doc as rd
 3import aspose.html.rendering as rn
 4import aspose.html.drawing as dr
 5
 6# Setup input and output directories
 7data_dir = "data/"
 8output_dir = "output/"
 9os.makedirs(output_dir, exist_ok=True)
10
11# Prepare path to the source EPUB file
12epub_path = os.path.join(data_dir, "input.epub")
13save_path = os.path.join(output_dir, "render-epub-with-options.docx")
14
15# Open the EPUB file in binary mode
16with open(epub_path, "rb") as stream:
17
18    # Create an instance of EPUB Renderer
19    renderer = rn.EpubRenderer()
20
21    # Create DOC rendering options and set a custom page size
22    options = rd.DocRenderingOptions()
23    options.page_setup.any_page = dr.Page(dr.Size(800, 400))
24
25    # Create an instance of DocDevice for output
26    device = rd.DocDevice(options, save_path)
27
28    # Render EPUB to DOCX
29    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.