Рендереры – Renderers – С#

Renderers

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

В то время как метод RenderTo() класса Document дает вам возможность отправить один документ на выход устройство рендеринга, используя экземпляры Renderer напрямую, вы можете отправлять несколько файлов одновременно. Таким образом, вы можете объединять HTML, документы MHTML, EPUB и SVG и применять параметры рендеринга для преобразования выходного файла.

В данной статье описываются поддерживаемые сценарии преобразования и слияния HTML-файлов в другие популярные форматы с использованием методов Render() Renderer класса.

HtmlRenderer

Использование класса HtmlRenderer для рендеринга файлов HTML в другие популярные форматы – это еще один способ конвертировать HTML путем настройки параметры рендеринга и управление выводом процесса рендеринга.
Давайте рассмотрим использование класса HtmlRenderer для рендеринга HTML в PDF с пользовательскими параметрами рендеринга:

  1. Инициализируйте документ HTML. Используйте один из конструкторов HTMLDocument() для создания экземпляра HTMLDocument.
  2. Создайте новый объект HtmlRenderer.
  3. Создайте экземпляр PdfRenderingOptions и установите пользовательские параметры для выходного PDF-документа. В примере мы указываем свойство AnyPage класса PageSetup, которое устанавливает новый объект Page со страницей размер 600 пикселей на 200 пикселей и свойство Encryption, которое идентифицирует пароли пользователя и владельца, разрешено разрешения и алгоритм шифрования выходного PDF-файла.
  4. Используйте конструктор PdfDevice(options, savePath) для создания объекта класса PdfDevice.
  5. И, наконец, вызовите метод Render(device, document) для рендеринга HTML-документа в выходной PDF-файл с указанными параметрами рендеринга.
 1// Prepare a path to a source HTML file
 2string documentPath = Path.Combine(DataDir, "file.html");
 3
 4// Initialize an HTML document from the file
 5using var document = new HTMLDocument(documentPath);
 6
 7// Create an instance of HTML Renderer
 8using var renderer = new HtmlRenderer();
 9
10// Prepare a path to save the converted file 
11string savePath = Path.Combine(OutputDir, "convert-html-options.pdf");
12
13// Create the instance of Rendering Options and set a custom page-size
14var options = new PdfRenderingOptions();
15options.PageSetup.AnyPage = new Page(new Size(600, 200));
16options.Encryption = new PdfEncryptionInfo(
17       "user_pwd",
18       "owner_pwd",
19       PdfPermissions.PrintDocument,
20       PdfEncryptionAlgorithm.RC4_128);
21
22// Create an instance of PDF device
23using var device = new PdfDevice(options, savePath);
24
25// Render HTML to PDF
26renderer.Render(device, document);

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

Если вас интересует, как использовать параметры рендеринга для изменения размера страниц документа в соответствии с размером содержимого и наоборот, посетите статью Как изменить размер документа во время преобразования из HTML?

SvgRenderer

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

  1. Инициализируйте документ SVG. Используйте один из конструкторов SVGDocument() для создания экземпляра SVGDocument.
  2. Создайте новый объект SvgRenderer.
  3. Создайте экземпляр PdfRenderingOptions и установите пользовательские параметры для выходного PDF-документа. В примере мы указываем свойство PageSetup.AnyPage, которое устанавливает новый объект Page с размером страницы 600x500 пикселей.
  4. Используйте конструктор PdfDevice(options, savePath) для создания объект класса PdfDevice.
  5. И, наконец, вызовите метод Render(device, document) для рендеринга документа SVG в выходной PDF-файл с указанными параметрами рендеринга.
 1// Initialize an SVG document from the file
 2using var document = new SVGDocument(Path.Combine(DataDir, "shapes.svg"));           
 3
 4// Create an instance of SVG Renderer
 5using var renderer = new SvgRenderer();
 6
 7// Prepare a path to save the converted file 
 8string savePath = Path.Combine(OutputDir, "rendering-svg.pdf");
 9
10// Create the instance of Rendering Options and set a custom page-size
11var options = new PdfRenderingOptions();
12options.PageSetup.AnyPage = new Page(new Size(600, 500));
13
14// Create an instance of the Pdfdevice class
15using var device = new PdfDevice(options, savePath);
16
17// Merge all SVG documents into PDF
18renderer.Render(device, document);

MhtmlRenderer

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

  1. Откройте существующий документ MHTML.
  2. Создайте экземпляр MhtmlRenderer с помощью конструктора MhtmlRenderer().
  3. Инициализируйте класс PdfRenderingOptions и задайте параметры рендеринга.
  4. Создайте экземпляр класса PdfDevice.
  5. Вызовите метод Render(device, stream) для рендеринга MHTML в PDF.
 1// Open an existing MHTML file for reading
 2using var stream = File.OpenRead(DataDir + "sample.mht");
 3
 4// Create an instance of MHTML Renderer
 5using var renderer = new MhtmlRenderer();
 6
 7// Prepare a path to save the converted file 
 8string savePath = Path.Combine(OutputDir, "convert-mhtml-options.pdf");
 9
10// Create the instance of Rendering Options and set a custom page-size and background color
11var options = new PdfRenderingOptions();
12options.PageSetup.AnyPage = new Page(new Size(600, 200));
13options.BackgroundColor = System.Drawing.Color.Azure;
14
15// Create an instance of PDF device
16using var device = new PdfDevice(options, savePath);
17
18// Convert MHTML to PDF
19renderer.Render(device, stream);

EpubRenderer

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

  1. Откройте существующий файл EPUB.
  2. Создайте экземпляр класса EpubRenderer.
  3. Инициализируйте класс DocRenderingOptions и задайте параметры рендеринга.
  4. Создайте экземпляр класса DocDevice.
  5. Вызовите метод Render(device, stream) для рендеринга EPUB в DOCX.
 1// Open an existing EPUB file for reading
 2using var stream = File.OpenRead(DataDir + "input.epub");
 3
 4// Create an instance of EPUB Renderer
 5using var renderer = new EpubRenderer();
 6
 7// Prepare a path to save the converted file 
 8string savePath = Path.Combine(OutputDir, "convert-epub-options.docx");
 9
10// Create the instance of Rendering Options and set a custom page-size
11var options = new DocRenderingOptions();
12options.PageSetup.AnyPage = new Page(new Size(800, 400));            
13
14// Create an instance of the DocDevice class
15using var device = new DocDevice(options, savePath);
16
17// Render EPUB to DOCX
18renderer.Render(device, stream);

Объединение HTML

Aspose.HTML for .NET API предоставляет Renderer для рендеринга и объединения документов HTML, MHTML, EPUB и SVG в популярные форматы. В то время как метод RenderTo() дает вам возможность отправить один документ на выходное устройство рендеринга, используя экземпляры Renderer напрямую, вы можете отправлять несколько файлов одновременно. Используя реализацию средств визуализации: HtmlRenderer, SvgRenderer, MhtmlRenderer и EpubRenderer, вы можете объединять документы HTML, SVG, MHTML и EPUB соответственно. В следующем примере показано, как использовать HtmlRenderer для рендеринга нескольких HTML-документов:

 1// Prepare HTML code
 2var code1 = @"<br><span style='color: green'>Hello, World!!</span>";
 3var code2 = @"<br><span style='color: blue'>Hello, World!!</span>";
 4var code3 = @"<br><span style='color: red'>Hello, World!!</span>";
 5
 6// Create three HTML documents to merge later
 7using var document1 = new HTMLDocument(code1, ".");
 8using var document2 = new HTMLDocument(code2, ".");
 9using var document3 = new HTMLDocument(code3, ".");
10
11// Create an instance of HTML Renderer
12using var renderer = new HtmlRenderer();
13
14// Prepare a path to save the converted file 
15string savePath = Path.Combine(OutputDir, "merge-html.pdf");
16
17// Create an instance of PDF device
18using var device = new PdfDevice(savePath);
19        
20// Merge all HTML documents into PDF
21renderer.Render(device, document1, document2, document3);

Установить время ожидания

Еще одна важная функция, доступная для рендереров, – тайм-аут. Вы можете использовать его, чтобы указать, как долго вы готовы ждать завершения всех внутренних процессов, связанных с жизненным циклом документа, таких как загрузка ресурсов, активные таймеры и т. д. Конечно, вы можете указать бесконечный период ожидания. Однако, если документ содержит скрипт с бесконечным циклом, вы будете ждать бесконечно долго. В приведенном ниже примере показано, как использовать параметр тайм-аута:

 1// Prepare HTML code
 2var code = @"
 3<script>
 4    var count = 0;
 5    setInterval(function()
 6        {
 7            var element = document.createElement('div');
 8            var message = (++count) + '. ' + 'Hello, World!! I know how to use Renderers!';
 9            var text = document.createTextNode(message);
10            element.appendChild(text);
11            document.body.appendChild(element);
12        }, 1000);
13</script>";
14
15// Initialize an HTML document based on prepared HTML code
16using var document = new HTMLDocument(code, ".");
17
18// Create an instance of HTML Renderer
19using HtmlRenderer renderer = new HtmlRenderer();
20
21// Prepare a path to save the converted file 
22string savePath = Path.Combine(OutputDir, "output-timeout.pdf");
23
24// Create an instance of the PdfDevice class
25using var device = new PdfDevice(savePath);
26        
27// Render HTML to PDF
28renderer.Render(device, TimeSpan.FromSeconds(5), document);

В этом примере мы создаем документ HTML, который каждую секунду добавляет новый элемент <div> с порядковым номером и сообщением «Hello, World!!» Мы используем параметр TimeSpan в Render(device, timeout, document) для установки времени ожидания. Этот параметр указывает максимальное время, которое средство визуализации потратит на визуализацию документа. В этом случае общее время устанавливается равным 5 секундам. Если модуль визуализации не сгенерировал документ в течение указанного времени, он остановится и визуализирует частично визуализированный документ. Запустив этот пример, вы получите документ с пятью строками «Привет, мир!! Я знаю, как использовать визуализаторы!» сообщение следующим образом:

Пять строк «Привет, мир!! Я знаю, как использовать визуализаторы!’

Вы можете скачать полные примеры C# и файлы данных с GitHub.

Aspose.HTML предлагает бесплатные онлайн Конвертеры, которые могут преобразовывать файлы HTML, XHTML, MHTML, EPUB, XML и Markdown в ряд популярных форматов. Вы можете легко конвертировать HTML-документы в форматы PDF, XPS, DOCX, JPG, PNG, GIF, TIFF и другие форматы. Просто выберите файл, выберите формат для преобразования, и все готово. Лучше всего то, что это совершенно бесплатно!

Text “Баннер – Бесплатные онлайн-конвертеры “< /а>

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.