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 in Python with custom page settings
 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# Prepare input and output paths
11data_dir = "data"
12output_dir = "output"
13os.makedirs(output_dir, exist_ok=True)
14
15document_path = os.path.join(data_dir, "document.html")
16save_path = os.path.join(output_dir, "render-html-with-options.pdf")
17
18# Load the HTML document
19with ah.HTMLDocument(document_path) as document:
20    with rn.HtmlRenderer() as renderer:
21        # Configure PDF output
22        options = rp.PdfRenderingOptions()
23        options.page_setup.any_page = dr.Page(dr.Size(600, 200))
24        options.encryption = rpe.PdfEncryptionInfo(
25            user_password="user_pwd",
26            owner_password="owner_pwd",
27            permissions=rpe.PdfPermissions.PRINT_DOCUMENT,
28            encryption_algorithm=rpe.PdfEncryptionAlgorithm.RC4_128
29        )
30
31        # Render HTML to PDF
32        with rp.PdfDevice(options, save_path) as device:
33            renderer.render(device, document)

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 in Python with custom page settings
 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# Prepare input and output paths
10data_dir = "data"
11output_dir = "output"
12os.makedirs(output_dir, exist_ok=True)
13
14doc_path = os.path.join(data_dir, "flower.svg")
15save_path = os.path.join(output_dir, "render-svg-with-options.png")
16
17# Load the SVG document
18with ah.dom.svg.SVGDocument(doc_path) as document:
19    with rn.SvgRenderer() as renderer:
20        # Configure PNG output
21        options = ri.ImageRenderingOptions()
22        options.page_setup.any_page = dr.Page(dr.Size(400, 300))
23
24        # Render SVG to PNG
25        with ri.ImageDevice(options, save_path) as device:
26            renderer.render(device, document)

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 in Python with custom page settings
 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# Prepare input and output paths
10data_dir = "data"
11output_dir = "output"
12os.makedirs(output_dir, exist_ok=True)
13
14mhtml_path = os.path.join(data_dir, "document.mht")
15save_path = os.path.join(output_dir, "render-mhtml-with-options.pdf")
16
17# Open the MHTML file
18with open(mhtml_path, "rb") as stream:
19    with rn.MhtmlRenderer() as renderer:
20        # Configure PDF output
21        options = rp.PdfRenderingOptions()
22        options.page_setup.any_page = dr.Page(dr.Size(800, 400))
23        options.background_color = pd.Color.bisque
24
25        # Render MHTML to PDF
26        with rp.PdfDevice(options, save_path) as device:
27            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 in Python with custom page settings
 2
 3import os
 4import aspose.html.rendering.doc as rd
 5import aspose.html.rendering as rn
 6import aspose.html.drawing as dr
 7
 8# Prepare input and output paths
 9data_dir = "data"
10output_dir = "output"
11os.makedirs(output_dir, exist_ok=True)
12
13epub_path = os.path.join(data_dir, "input.epub")
14save_path = os.path.join(output_dir, "render-epub-with-options.docx")
15
16# Open the EPUB file
17with open(epub_path, "rb") as stream:
18    with rn.EpubRenderer() as renderer:
19        # Configure DOCX output
20        options = rd.DocRenderingOptions()
21        options.page_setup.any_page = dr.Page(dr.Size(800, 400))
22
23        # Render EPUB to DOCX
24        with rd.DocDevice(options, save_path) as device:
25            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”