Renderer – Rendern von HTML, MHTML, EPUB und SVG in Python

Renderer

Der aspose.html.rendering Namespace besteht aus zahlreichen Renderer-Objekten und entsprechenden Low-Level-Optionen-Klassen, die für das Rendering von Dokumenten in der IDevice-Implementierung verantwortlich sind. Aspose.HTML für Python via .NET API bietet die folgende Realisierung von Renderern: HtmlRenderer, SvgRenderer, MhtmlRenderer und EpubRenderer, die jeweils zum Rendern von HTML-, SVG-, MHTML- und EPUB-Dokumenten verwendet werden.

Der vorliegende Artikel beschreibt unterstützte Szenarien der HTML-basierten Dateikonvertierung in andere gängige Formate unter Verwendung von render()-Methoden des aspose.html.rendering Namespace.

HtmlRenderer

Die Klasse HtmlRenderer kann zum Rendern von HTML-Dateien in verschiedene gängige Formate verwendet werden und ermöglicht die Anpassung der Rendering-Optionen und die Kontrolle über die Ausgabe des Prozesses. Betrachten wir die Verwendung der Klasse HtmlRenderer zum Rendern von HTML in PDF mit benutzerdefinierten Ausgabeeinstellungen:

  1. Initialisieren Sie ein HTML-Dokument mit der Klasse HTMLDocument.
  2. Erstellen Sie ein neues HtmlRenderer Objekt.
  3. Erstellen Sie eine Instanz von PdfRenderingOptions und passen Sie die Optionen für Ihr PDF-Ausgabedokument an. Sie können zum Beispiel die Eigenschaft any_page der Klasse PageSetup setzen, um ein neues Page-Objekt mit den Abmessungen 600 Pixel mal 200 Pixel zu erstellen. Darüber hinaus können Sie die Eigenschaft encryption konfigurieren, um Benutzer- und Eigentümerpasswörter, zulässige Aktionen und den Verschlüsselungsalgorithmus für die PDF-Ausgabedatei festzulegen.
  4. Verwenden Sie den Konstruktor PdfDevice(options, savePath), um ein Objekt der Klasse PdfDevice zu erstellen.
  5. Rufen Sie die Methode render(device, document) auf, um HTML in PDF mit den angegebenen Rendering-Optionen zu rendern.
 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)

Rendering-Optionen geben Ihnen zusätzliche Kontrolle über den Rendering-Prozess. Um mehr über sie zu erfahren, lesen Sie bitte den Artikel Rendering-Optionen.

Weitere Informationen über den Rendering-Prozess finden Sie im Artikel Rendering Device.

SvgRenderer

Mit dem SvgRenderer können Sie SVG-Dateien in andere Dateiformate wie PDF, XPS, DOCX und Bildformate umwandeln. Das folgende Beispiel zeigt, wie die SvgRenderer-Klasse verwendet wird, um SVG in PNG zu rendern, wobei eine benutzerdefinierte Seitengröße angegeben wird:

  1. Initialisieren Sie ein SVG-Dokument. Verwenden Sie einen der SVGDocument() Konstruktoren, um eine SVGDocument-Instanz zu erstellen.
  2. Erstellen Sie ein neues SvgRenderer-Objekt.
  3. Erstellen Sie eine Instanz von ImageRenderingOptions und legen Sie benutzerdefinierte Optionen für das ausgegebene PNG-Bild fest. Im Beispiel geben wir die Eigenschaft any_page an, die ein neues Seitenobjekt mit einer Seitengröße von 400x300 Pixeln festlegt.
  4. Verwenden Sie den Konstruktor ImageDevice(options, savePath), um ein Objekt der Klasse ImageDevice zu erstellen.
  5. Aufruf der Methode render(device, document) zum Rendern von SVG in PNG mit den angegebenen Rendering-Optionen.
 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

Dieses Beispiel veranschaulicht die Konvertierung eines MHTML-Dokuments in PDF unter Verwendung der Klasse MhtmlRenderer mit bestimmten Rendering-Optionen:

  1. Öffnen Sie ein vorhandenes MHTML-Dokument.
  2. Erstellen Sie eine Instanz der MhtmlRenderer-Klasse mit dem MhtmlRenderer() Konstruktor.
  3. Initialisieren Sie die Klasse PdfRenderingOptions und legen Sie Rendering-Optionen fest.
  4. Erstellen Sie eine Instanz der Klasse PdfDevice.
  5. Rufen Sie die Methode render(device, stream) auf, um MHTML in PDF umzuwandeln.
 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

Mit der Klasse EpubRenderer können Sie EPUB-Dateien in andere Formate wie PDF, XPS, DOCX und Bilder konvertieren. Die folgenden Python-Beispiele zeigen, wie EPUB in DOCX mit einer benutzerdefinierten Seitengrößeneinstellung konvertiert werden kann:

  1. Öffnen Sie eine vorhandene EPUB-Datei.
  2. Erstellen Sie eine Instanz der EpubRenderer-Klasse.
  3. Initialisieren Sie die Klasse DocRenderingOptions und legen Sie Rendering-Optionen fest.
  4. Erstellen Sie eine Instanz der Klasse DocDevice.
  5. Rufen Sie die Methode render(device, stream) auf, um EPUB in DOCX umzuwandeln.
 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 bietet kostenlose Online- Konverter, die HTML-, XHTML-, MHTML-, EPUB-, XML- und Markdown-Dateien in eine Reihe von gängigen Formaten konvertieren können. Sie können Ihre HTML-basierten Dokumente ganz einfach in PDF, XPS, DOCX, JPG, PNG, GIF, TIFF und andere konvertieren. Wählen Sie einfach eine Datei und das zu konvertierende Format aus, und schon sind Sie fertig.

Text “Kostenlose Online-Konverter”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.