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:
- Inicializa un documento HTML utilizando la clase HTMLDocument.
- Crea un nuevo objeto HtmlRenderer.
- 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. - Utilice el constructor PdfDevice(options, savePath) para crear un objeto de la clase PdfDevice.
- 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:
- Inicializar un documento SVG. Utilice uno de los constructores SVGDocument() para crear una instancia de SVGDocument.
- Crea un nuevo objeto SvgRenderer.
- 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.
- Utilice el constructor ImageDevice(options, savePath) para crear un objeto de la clase ImageDevice.
- 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:
- Abra un documento MHTML existente.
- Crea una instancia de la clase MhtmlRenderer usando el constructor MhtmlRenderer().
- Inicializa la clase PdfRenderingOptions y establece las opciones de renderizado.
- Crear una instancia de la clase PdfDevice.
- 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:
- Abrir un archivo EPUB existente.
- Crea una instancia de la clase EpubRenderer.
- Inicializa la clase DocRenderingOptions y establece las opciones de renderizado.
- Crear una instancia de la clase DocDevice.
- 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.