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

Renderers

Пространство имен Aspose.Html.Rendering состоит из множества объектов рендеринга и соответствующих низкоуровневых классов опций, которые отвечают за рендеринг документов. в реализацию IDevice. Aspose.HTML для .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-файл с указанными параметрами рендеринга.
 1using System.IO;
 2using Aspose.Html;
 3using Aspose.Html.Rendering;
 4using Aspose.Html.Rendering.Pdf;
 5using Aspose.Html.Rendering.Pdf.Encryption;
 6...
 7    // Prepare a path to a source HTML file
 8    string documentPath = Path.Combine(DataDir, "file.html");
 9
10    // Initialize an HTML document from the file
11    using var document = new HTMLDocument(documentPath);
12
13    // Create an instance of HTML Renderer
14    using var renderer = new HtmlRenderer();
15
16    // Prepare a path to save the converted file 
17    string savePath = Path.Combine(OutputDir, "convert-html-options.pdf");
18
19    // Create the instance of the PdfRenderingOptions and set a custom page size and encryption
20    var options = new PdfRenderingOptions();
21    options.PageSetup.AnyPage = new Page(new Size(600, 200));
22    options.Encryption = new PdfEncryptionInfo(
23            "user_pwd",
24            "owner_pwd",
25            PdfPermissions.PrintDocument,
26            PdfEncryptionAlgorithm.RC4_128);
27
28    // Create an instance of PDF device
29    using var device = new PdfDevice(options, savePath);
30
31    // Render HTML to PDF
32    renderer.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-файл с указанными параметрами рендеринга.
 1using System.IO;
 2using Aspose.Html;
 3using Aspose.Html.Rendering;
 4using Aspose.Html.Rendering.Pdf;
 5using Aspose.Html.Rendering.Pdf.Encryption;
 6...
 7    // Initialize an SVG document from the file
 8    using var document = new SVGDocument(Path.Combine(DataDir, "shapes.svg"));    
 9
10    // Create an instance of SVG Renderer
11    using var renderer = new SvgRenderer();
12
13    // Prepare a path to save the converted file 
14    string savePath = Path.Combine(OutputDir, "merge-svg.pdf");
15
16    // Create the instance of the PdfRenderingOptions class and set a custom page size
17    var options = new PdfRenderingOptions();
18    options.PageSetup.AnyPage = new Page(new Size(600, 500));            
19
20    // Create an instance of PdfDevice class
21    using var device = new PdfDevice(options, savePath);
22
23    // Render SVG to PDF
24    renderer.Render(device, document);

MhtmlRenderer

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

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

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

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

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

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

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

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