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
PageSetuppara 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.
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:
- 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.
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:
- 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.
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:
- 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.
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.
