Renderers – Rendre HTML, MHTML, EPUB et SVG en Python

Renderers

L’espace de noms aspose.html.rendering comprend de nombreux objets de rendu et des classes d’options de bas niveau appropriées, qui sont responsables du rendu des documents dans l’implémentation IDevice. Aspose.HTML for Python via .NET API fournit la réalisation suivante d’objets de rendu : HtmlRenderer, SvgRenderer, MhtmlRenderer, et EpubRenderer, qui sont utilisés pour rendre les documents HTML, SVG, MHTML, et EPUB, respectivement.

Cet article décrit des scénarios de conversion de fichiers HTML vers d’autres formats populaires à l’aide des méthodes render() de l’espace de noms aspose.html.rendering.

HtmlRenderer

La classe HtmlRenderer peut être utilisée pour rendre des fichiers HTML dans divers formats populaires, permettant de personnaliser les options de rendu et de contrôler le résultat du processus. Voyons comment utiliser la classe HtmlRenderer pour rendre HTML en PDF avec des paramètres de sortie personnalisés :

  1. Initialiser un document HTML en utilisant la classe HTMLDocument.
  2. Créer un nouvel objet HtmlRenderer.
  3. Créez une instance de la classe PdfRenderingOptions et personnalisez les options de votre document PDF de sortie. Par exemple, vous pouvez définir la propriété any_page de la classe PageSetup pour créer un nouvel objet Page avec des dimensions de 600 pixels par 200 pixels. En outre, vous pouvez configurer la propriété encryption, en spécifiant les mots de passe de l’utilisateur et du propriétaire, les actions autorisées et l’algorithme de cryptage pour le fichier PDF de sortie.
  4. Utilisez le constructeur PdfDevice(options, savePath) pour créer un objet de la classe PdfDevice.
  5. Appeler la méthode render(device, document) pour rendre HTML en PDF avec les options de rendu spécifiées.
 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)

Les options de rendu vous donnent un contrôle supplémentaire sur le processus de rendu. Pour en savoir plus, lisez l’article Options de rendu.

Pour en savoir plus sur le processus de rendu, voir l’article Dispositif de rendu.

SvgRenderer

La classe SvgRenderer vous permet de convertir des fichiers SVG en d’autres formats de fichiers, tels que PDF, XPS, DOCX et des formats d’images. L’exemple suivant montre comment utiliser la classe SvgRenderer pour convertir un fichier SVG en PNG en spécifiant une taille de page personnalisée :

  1. Initialiser un document SVG. Utilisez l’un des constructeurs SVGDocument() pour créer une instance de SVGDocument.
  2. Créer un nouvel objet SvgRenderer.
  3. Créez une instance de ImageRenderingOptions et définissez des options personnalisées pour l’image PNG de sortie. Dans l’exemple, nous spécifions la propriété any_page qui définit un nouvel objet Page avec une taille de page de 400x300 pixels.
  4. Utilisez le constructeur ImageDevice(options, savePath) pour créer un objet de la classe ImageDevice.
  5. Appeler la méthode render(device, document) pour rendre SVG en PNG avec les options de rendu spécifiées.
 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

Cet exemple illustre comment convertir un document MHTML en PDF en utilisant la classe MhtmlRenderer avec les options de rendu spécifiées :

  1. Ouvrir un document MHTML existant.
  2. Créez une instance de la classe MhtmlRenderer en utilisant le constructeur MhtmlRenderer().
  3. Initialiser la classe PdfRenderingOptions et définir les options de rendu.
  4. Créer une instance de la classe PdfDevice.
  5. Appelez la méthode render(device, stream) pour convertir le MHTML en 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 classe EpubRenderer vous permet de convertir des fichiers EPUB en d’autres formats tels que PDF, XPS, DOCX et images. L’exemple Python suivant montre comment convertir un fichier EPUB en DOCX avec un paramètre de taille de page personnalisé :

  1. Ouvrir un fichier EPUB existant.
  2. Créer une instance de la classe EpubRenderer.
  3. Initialiser la classe DocRenderingOptions et définir les options de rendu.
  4. Créer une instance de la classe DocDevice.
  5. Appeler la méthode render(device, stream) pour convertir l’EPUB en 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 propose des Convertisseurs gratuits en ligne qui permettent de convertir des fichiers HTML, XHTML, MHTML, EPUB, XML et Markdown dans toute une série de formats populaires. Vous pouvez facilement convertir vos documents HTML en PDF, XPS, DOCX, JPG, PNG, GIF, TIFF et autres. Il vous suffit de sélectionner un fichier, de choisir le format à convertir et le tour est joué.

Texte “Convertisseurs gratuits en ligne”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.