Рендеры – Рендеринг HTML, MHTML, EPUB и SVG на Python

Рендеры – Renderers

Пространство имен aspose.html.rendering состоит из множества объектов рендереров и соответствующих низкоуровневых классов опций, которые отвечают за рендеринг документов в реализации IDevice. Aspose.HTML for Python via .NET API предоставляет следующую реализацию рендереров: HtmlRenderer, SvgRenderer, MhtmlRenderer и EpubRenderer, которые используются для рендеринга HTML, SVG, MHTML и EPUB документов, соответственно.

В данной статье описываются поддерживаемые сценарии преобразования HTML-файлов в другие популярные форматы с помощью методов render() из пространства имен aspose.html.rendering.

HtmlRenderer

Класс HtmlRenderer можно использовать для рендеринга HTML-файлов в различные популярные форматы, позволяя настраивать параметры и контролировать результаты процесса. Давайте рассмотрим использование класса HtmlRenderer для рендеринга HTML в PDF с пользовательскими настройками результата:

  1. Инициализируйте HTML-документ, используя класс HTMLDocument.
  2. Создайте новый объект HtmlRenderer.
  3. Создайте экземпляр класса PdfRenderingOptions и настройте параметры для выходного PDF-документа. Например, вы можете установить свойство any_page класса PageSetup для создания нового объекта Page с размерами 600 пикселей на 200 пикселей. Кроме того, можно настроить свойство encryption, указав пароли пользователя и владельца, разрешенные действия и алгоритм шифрования для выходного PDF-файла.
  4. Используйте конструктор PdfDevice(options, savePath), чтобы создать объект класса PdfDevice.
  5. Вызовите метод render(device, document) для рендеринга HTML в PDF с указанными параметрами рендеринга.
 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)

Опции рендеринга дают вам дополнительный контроль над процессом рендеринга. Чтобы узнать о них больше, прочитайте статью Опции рендеринга. Чтобы узнать больше о процессе рендеринга, обратитесь к статье Устройство рендеринга.

SvgRenderer

Класс SvgRenderer позволяет преобразовывать файлы SVG в другие форматы, такие как PDF, XPS, DOCX и форматы изображений. Следующий пример демонстрирует использование класса SvgRenderer для рендеринга SVG в PNG с заданием размера страницы:

  1. Инициализируйте документ SVG. Используйте один из конструкторов SVGDocument() для создания экземпляра SVGDocument.
  2. Создайте новый объект SvgRenderer.
  3. Создайте экземпляр ImageRenderingOptions и задайте пользовательские параметры для выходного PNG-изображения. В примере мы указываем свойство any_page, которое устанавливает новый объект Page с размером страницы 400x300 пикселей.
  4. Используйте конструктор ImageDevice(options, savePath), чтобы создать объект класса ImageDevice.
  5. Вызовите метод render(device, document) для рендеринга SVG в PNG с указанными ImageRenderingOptions.
 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

В этом примере показано, как преобразовать MHTML-документ в PDF с помощью класса MhtmlRenderer с заданными параметрами рендеринга:

  1. Откройте существующий документ MHTML.
  2. Создайте экземпляр класса MhtmlRenderer с помощью конструктора MhtmlRenderer().
  3. Инициализируйте класс PdfRenderingOptions и установите параметры рендеринга.
  4. Создайте экземпляр класса PdfDevice.
  5. Вызовите метод render(device, stream) для рендеринга MHTML в 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

Класс EpubRenderer позволяет конвертировать файлы EPUB в другие форматы, такие как PDF, XPS, DOCX и изображения. В следующих примерах на Python показано, как конвертировать EPUB в DOCX с заданием размера страницы:

  1. Откройте существующий файл EPUB.
  2. Создайте экземпляр класса EpubRenderer.
  3. Инициализируйте класс DocRenderingOptions и установите параметры рендеринга.
  4. Создайте экземпляр класса DocDevice.
  5. Вызовите метод render(device, stream) для преобразования EPUB в 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 предлагает бесплатные онлайн Конверторы, которые позволяют преобразовать файлы HTML, XHTML, MHTML, EPUB, XML и Markdown в различные популярные форматы. Вы можете легко конвертировать HTML-документы в PDF, XPS, DOCX, JPG, PNG, GIF, TIFF и другие. Просто выберите файл, выберите формат для преобразования, и все готово.

Текст “Бесплатные онлайн-конвертеры”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.