Устройства рендеринга – рендеринг HTML в PDF, XPS, DOCX и изображения
В этой статье мы опишем, как использовать устройства рендеринга – PdfDevice, XpsDevice, DocDevice и ImageDevice – для рендеринга HTML в PDF, XPS, DOCX и изображения. В примерах на Python процесс рендеринга рассматривается с параметрами рендеринга по умолчанию. Чтобы узнать больше о настройке вывода, прочитайте статью Rendering Options.
Понимание устройств рендеринга (Rendering Device) в Aspose.HTML
В Aspose.HTML for Python via .NET устройство рендеринга представляет собой двумерную поверхность для рисования, реализованную через интерфейс IDevice. Его основное назначение – преобразование содержимого HTML и поддерживаемых веб-форматов (MHTML, SVG и EPUB) в различные выходные форматы.
API Python предоставляет следующие устройства рендеринга:
- PdfDevice – рендерит HTML, MHTML, SVG и EPUB в PDF.
- XpsDevice – рендерит HTML, MHTML, SVG и EPUB в формат XPS.
- DocDevice – рендерит HTML, MHTML, SVG и EPUB в DOCX.
- ImageDevice – рендерит HTML, MHTML, SVG и EPUB в форматы изображений.
Каждое устройство имеет определенные параметры рендеринга: PdfRenderingOptions, XpsRenderingOptions, DocRenderingOptions и ImageRenderingOptions. Они позволяют точно контролировать качество вывода, макет и форматирование.
PdfDevice
Пространство имен Aspose.Html.Rendering.Pdf в библиотеке Aspose.HTML for Python via .NET предоставляет функциональность для рендеринга HTML и связанных форматов непосредственно в документы PDF. Оно включает классы и параметры, предназначенные для вывода PDF. Ключевые компоненты:
PdfDevice
– это базовый класс устройства рендеринга. Он используется для преобразования HTML (или MHTML, SVG, EPUB и т.д.) в PDF-файл.PdfRenderingOptions
– это класс, определяющий настраиваемые параметры вывода PDF, такие как размер страницы, поля, сжатие изображений, метаданные, шифрование и другие параметры компоновки/форматирования.
Следующий пример на Python показывает, как использовать PdfDevice
для рендеринга HTML в PDF. Процесс рассматривается с параметрами рендеринга по умолчанию:
1import os
2import aspose.html as ah
3import aspose.html.rendering.pdf as rp
4
5# Prepare output directory and path for the PDF file
6output_dir = "output/"
7os.makedirs(output_dir, exist_ok=True)
8save_path = os.path.join(output_dir, "document.pdf")
9
10# Prepare HTML code
11code = "<span>Hello, World!!</span>"
12
13# Initialize an HTML document from the HTML code
14doc = ah.HTMLDocument(code, ".")
15
16# Create a PDF Device and specify the output file to render
17device = rp.PdfDevice(save_path)
18
19# Render HTML to PDF
20doc.render_to(device)
Опции рендеринга дают вам дополнительный контроль над процессом. Чтобы узнать о них больше, прочитайте статью Опции рендеринга.
ImageDevice
Пространство имен
Aspose.Html.Rendering.Image предоставляет специальный класс
ImageDevice, а также класс ImageRenderingOptions
, отвечающий за рендеринг HTML-файлов в растровые форматы: JPG, PNG, BMP, GIF и TIFF.
Этот пример демонстрирует, как преобразовать HTML-файл в изображение JPEG с помощью Aspose.HTML for Python via .NET. Код загружает HTML-документ с диска, настраивает ImageRenderingOptions
для формата JPEG, а затем использует ImageDevice
для рендеринга документа в выходной файл изображения.
1import os
2import aspose.html as ah
3import aspose.html.rendering.image as ri
4
5# Setup input and output directories
6data_dir = "data/"
7output_dir = "output/"
8os.makedirs(output_dir, exist_ok=True)
9
10# Prepare paths for input HTML and output JPG file
11document_path = os.path.join(data_dir, "drawing.html")
12save_path = os.path.join(output_dir, "drawing-output.jpg")
13
14# Initialize an HTML document from the file
15doc = ah.HTMLDocument(document_path)
16
17# Create rendering options for image format (JPEG in this case)
18image_options = ri.ImageRenderingOptions(ri.ImageFormat.JPEG)
19
20# Create an ImageDevice and specify options and output file
21device = ri.ImageDevice(image_options, save_path)
22
23# Render HTML to JPG
24doc.render_to(device)
XpsDevice
Пространство имен Aspose.Html.Rendering.Xps предоставляет класс XpsDevice, который используется для рендеринга HTML-контента (или MHTML, SVG, EPUB и т.д.) в документы XPS. Следующий пример на языке Python демонстрирует этот процесс с параметрами рендеринга по умолчанию:
1import os
2import aspose.html as ah
3import aspose.html.rendering.xps as rx
4
5# Setup input and output directories
6data_dir = "data/"
7output_dir = "output/"
8os.makedirs(output_dir, exist_ok=True)
9
10# Prepare paths for input HTML and output XPS file
11document_path = os.path.join(data_dir, "drawing.html")
12save_path = os.path.join(output_dir, "drawing-output.xps")
13
14# Initialize an HTML document from the file
15doc = ah.HTMLDocument(document_path)
16
17# Create rendering options for XPS format
18xps_options = rx.XpsRenderingOptions()
19
20# Create an XpsDevice and specify options and output file
21device = rx.XpsDevice(xps_options, save_path)
22
23# Render HTML to JPG
24doc.render_to(device)
DocDevice
Пространство имен Aspose.Html.Rendering.Doc включает класс DocDevice, который обеспечивает рендеринг файлов HTML, MHTML, SVG и EPUB в формат DOCX. Следующий пример на Python демонстрирует этот процесс с использованием опций рендеринга по умолчанию:
1import os
2import aspose.html as ah
3import aspose.html.rendering.doc as rd
4
5# Prepare output directory and path for the DOCX file
6output_dir = "output/"
7os.makedirs(output_dir, exist_ok=True)
8save_path = os.path.join(output_dir, "document.doc")
9
10# Initialize an HTML document from URL
11doc = ah.HTMLDocument("https://docs.aspose.com/html/files/document.html")
12
13# Create a DocDevice and specify the output file to render
14device = rd.DocDevice(save_path)
15
16# Render HTML to DOCX
17doc.render_to(device)
Aspose.HTML предлагает бесплатные онлайн Конверторы, которые позволяют преобразовать файлы HTML, XHTML, MHTML, EPUB, XML и Markdown в различные популярные форматы. Вы можете легко конвертировать HTML-документы в PDF, XPS, DOCX, JPG, PNG, GIF, TIFF и другие. Просто выберите файл, выберите формат для преобразования, и все готово. И что самое приятное, это совершенно бесплатно!