Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Вы можете конвертировать HTML в различные популярные форматы несколькими способами, используя Aspose.HTML for Java:
device) класса HTMLDocument или методов render() класса
Renderer. Этот альтернативный способ рендеринга HTML-документов может дать вам больше контроля над процессом преобразования HTML в вашем Java-приложении.Устройство рендеринга (вывода) инкапсулирует поверхность 2D-рисования, API которой реализован с использованием интерфейса IDevice. В настоящее время Aspose.HTML for Java API реализует набор устройств рендеринга – PdfDevice, XpsDevice, DocDevice и ImageDevice, которые используются для создания файлов PDF, XPS, DOCX и изображений соответственно.
В следующем примере показано, как использовать PdfDevice для конвертации HTML-документа в PDF-файл. Процесс преобразования происходит с параметрами рендеринга по умолчанию:
device) класса HTMLDocument. 1// Render HTML to PDF using Java
2
3// Prepare HTML code
4String code = "<span>Hello, World!!</span>";
5
6// Initialize an HTML document from HTML code
7try (HTMLDocument document = new HTMLDocument(code, ".")) {
8
9 // Create an instance of the PdfDevice class and specify the output file to render
10 try (PdfDevice device = new PdfDevice("output.pdf")) {
11
12 // Render HTML to PDF
13 document.renderTo(device);
14 }
15}Параметры рендеринга дают вам дополнительный контроль над устройством вывода. Каждое устройство рендеринга PdfDevice, XpsDevice и ImageDevice имеет свой собственный уникальный набор параметров и реализуется с помощью классов PdfRenderingOptions, XpsRenderingOptions, DocRenderingOptions и ImageRenderingOptions соответственно. Например, вы можете изменить размер страницы, настроить поля и цвет фона, уменьшить размер файла, настроив качество и разрешение изображения, установить пароль безопасности в случае использования PdfDevice и т. д.
Ниже показано, как использовать PdfRenderingOptions для настройки размера страницы во время рендеринга HTML в PDF:
1// Render HTML to PDF in Java with custom page size
2
3// Prepare HTML code
4String code = "<span>Hello, World!!</span>";
5
6// Initialize a HTML document from the HTML code
7try (HTMLDocument document = new HTMLDocument(code, ".")) {
8
9 // Create an instance of PdfRenderingOptions and set a custom page-size
10 PdfRenderingOptions options = new PdfRenderingOptions();
11 PageSetup pageSetup = new PageSetup();
12 Page anyPage = new Page();
13 anyPage.setSize(
14 new Size(
15 Length.fromInches(5),
16 Length.fromInches(2)
17 )
18 );
19 pageSetup.setAnyPage(anyPage);
20 options.setPageSetup(pageSetup);
21
22 // Create a PDF Device and specify options and output file
23 try (PdfDevice device = new PdfDevice(options, "output.pdf")) {
24
25 // Render HTML to PDF
26 document.renderTo(device);
27 }
28}Параметры рендеринга дают вам дополнительный контроль над устройством вывода. Пакет com.aspose.html.rendering состоит из множества объектов рендеринга и соответствующих классов опций низкого уровня, отвечающих за рендеринг документов в реализации IDevice. Классы RenderingOptions и CssOptions представляют параметры рендеринга или, другими словами, общие параметры рендеринга.
Общие параметры действительны для всех устройств рендеринга и всех процессов рендеринга: HTML в PDF, XPS, DOCX и изображения. Давайте посмотрим на некоторые из них:
Настройки разрешения по горизонтали и вертикали необходимы для достижения высокого качества вывода при рендеринге HTML в другие форматы, например HTML в PDF. Горизонтальное и вертикальное разрешение измеряется в пикселях на дюйм (dpi) со значением по умолчанию 300 dpi. Этот параметр обеспечивает четкую детализацию и плавную визуализацию таких элементов, как текст, изображения, а также горизонтальные и вертикальные линии в документе PDF.
В следующем примере показано, как контролировать разрешение полученного PDF-файла, что в конечном итоге влияет на его размер и качество:
1// Render HTML to PDF with custom resolution using Java
2
3// Prepare HTML code and save it to a file
4String code = "< style >\n" +
5 " p\n" +
6 " {\n" +
7 " background:\n" +
8 " blue;\n" +
9 " }\n" +
10 " @media(min - resolution:300dpi)\n" +
11 " {\n" +
12 " p\n" +
13 " {\n" +
14 " /* high resolution screen color */\n" +
15 " background:\n" +
16 " green\n" +
17 " }\n" +
18 " }\n" +
19 " </style >\n" +
20 " <p > Hello World !! </p >\n";
21
22try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
23 fileWriter.write(code);
24}
25
26// Create an instance of the HTMLDocument class
27try (HTMLDocument document = new HTMLDocument("document.html")) {
28
29 // Create options for low-resolution screens
30 PdfRenderingOptions options = new PdfRenderingOptions();
31 options.setHorizontalResolution(Resolution.to_Resolution(50d));
32 options.setVerticalResolution(Resolution.to_Resolution(50d));
33
34 // Create an instance of the PdfDevice
35 try (PdfDevice device = new PdfDevice(options, "output_resolution_50.pdf")) {
36
37 // Render HTML to PDF
38 document.renderTo(device);
39 }
40
41 // Create options for high-resolution screens
42 options = new PdfRenderingOptions();
43 options.setHorizontalResolution(Resolution.to_Resolution(300d));
44 options.setVerticalResolution(Resolution.to_Resolution(300d));
45
46 // Create an instance of PDF device
47 try (PdfDevice device = new PdfDevice(options, "output_resolution_300.pdf")) {
48
49 // Render HTML to PDF
50 document.renderTo(device);
51 }
52}CSS Media Type – это важная функция, определяющая, как документ должен быть представлен на различных носителях: на экране, на бумаге, с помощью устройства Брайля и т. д. Существует несколько способов указать тип носителя для таблицы стилей: связанные таблицы стилей или встроенная таблица стилей:
Связанная таблица стилей
1 <link rel="stylesheet" type="text/css" media="print" href="style.javas">Встроенная таблица стилей
1<style type="text/css">
2@media print {
3 body{ color: #000000; }
4}
5</style>Aspose.HTML for Java поддерживает эту функцию, поэтому вы можете конвертировать HTML-документы так, как они выглядят на экране или при печати, с применением соответствующих типов мультимедиа и таблиц стилей. В следующем примере показано, как настроить тип носителя:
1// Render HTML to PDF with custom MediaType settings with Java
2
3// Prepare HTML code
4String code = "<span>Hello, World!!</span>";
5
6// Initialize an HTML document from the HTML code
7try (HTMLDocument document = new HTMLDocument(code, ".")) {
8
9 // Create an instance of the PdfRenderingOptions class
10 PdfRenderingOptions options = new PdfRenderingOptions();
11 // Set the 'screen' media-type
12 options.getCss().setMediaType(MediaType.Screen);
13
14 // Create a PDF Device and specify options and output file
15 try (PdfDevice device = new PdfDevice(options, "output.pdf")) {
16
17 // Render HTML to PDF
18 document.renderTo(device);
19 }
20}Обратите внимание, что значением по умолчанию для
CssOptions.MediaType является Print. Это означает, что документ будет конвертирован с применением таблиц стилей, связанных с печатающим устройством, и будет выглядеть как на бумаге (вы можете использовать предварительный просмотр в браузере, чтобы увидеть разницу). Если вы хотите, чтобы документ выглядел так, как он отображается на экране, вам следует использовать
MediaType.Screen.
Параметр Background Color – это важная функция для настройки внешнего вида визуализированного документа. Это позволяет разработчикам указать цвет, которым будет заполняться фон каждой страницы выходного файла. По умолчанию для этого свойства установлено значение Transparent, что означает, что фон не будет иметь видимой заливки, если это не указано явно. Настройка цвета фона может улучшить читаемость документа, удовлетворить требования к фирменному оформлению или создать визуально привлекательный дизайн.
1// Render HTML to PDF with custom background color using Java
2
3// Prepare HTML code and save it to a file
4String code = "<p>Hello, World!!</p>";
5try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
6 fileWriter.write(code);
7}
8
9// Create an instance of the HTMLDocument class
10try (HTMLDocument document = new HTMLDocument("document.html")) {
11
12 // Initialize options with 'cyan' as a background-color
13 PdfRenderingOptions options = new PdfRenderingOptions();
14 options.setBackgroundColor(Color.getCyan());
15
16 // Create an instance of the PdfDevice class
17 try (PdfDevice device = new PdfDevice(options, "output.pdf")) {
18
19 // Render HTML to PDF
20 document.renderTo(device);
21 }
22}Настройка страницы – это набор параметров, определяющих макет печатаемой страницы. Эти параметры включают в себя все: от размера страницы, полей и автоматического изменения размера до правил приоритета @page. Используя этот набор параметров, вы легко сможете настроить индивидуальный макет для каждой страницы.
В некоторых случаях содержимое HTML-страницы может быть шире, чем размер страницы, определенный с помощью параметров. Если вы не хотите обрезать содержимое страницы, вы можете использовать AdjustToWidestPage класса
PageSetup. В следующем примере показано, как настроить размер страницы в соответствии с содержимым.
1// Render HTML to PDF and adjust to the widest page with Java
2
3// Prepare HTML code
4String code = " <style>\n" +
5 " div {\n" +
6 " page - break -after:always;\n" +
7 " }\n" +
8 " </style >\n" +
9 " <div style = 'border: 1px solid red; width: 400px' > First Page</div >\n" +
10 " <div style = 'border: 1px solid red; width: 600px' > Second Page</div >\n";
11// Initialize an HTML document from HTML code
12try (HTMLDocument document = new HTMLDocument(code, ".")) {
13
14 // Create an instance of the PdfRenderingOptions class and set a custom page-size
15 PdfRenderingOptions options = new PdfRenderingOptions();
16 options.getPageSetup().setAnyPage(new Page(new Size(500, 200)));
17
18 // Enable auto-adjusting for the page size
19 options.getPageSetup().setAdjustToWidestPage(true);
20
21 // Create an instance of the PdfDevice class and specify options and output file
22 try (PdfDevice device = new PdfDevice(options, "output.pdf")) {
23
24 // Render HTML to PDF
25 document.renderTo(device);
26 }
27}Класс PdfRenderingOptions предоставляет разработчикам широкие возможности управления процессом рендеринга при преобразовании HTML в PDF. Он позволяет настраивать все общие параметры и, кроме того, предлагает параметры, специфичные для рендеринга только в формате PDF: DocumentInfo, Encryption, FormFieldBehaviour и JpegQuality.
В следующем примере демонстрируется возможность установки разрешений для файла PDF.
1// Render HTML to PDF with password protection using Java
2
3// Prepare HTML code
4String code = "<div>Hello, World!!</div>";
5
6// Initialize an HTML document from the HTML code
7try (HTMLDocument document = new HTMLDocument(code, ".")) {
8
9 // Create the instance of the PdfRenderingOptions class
10 PdfRenderingOptions options = new PdfRenderingOptions();
11
12 // Set file permissions
13 options.setEncryption(
14 new PdfEncryptionInfo(
15 "user_pwd",
16 "owner_pwd",
17 PdfPermissions.PrintDocument,
18 PdfEncryptionAlgorithm.RC4_128
19 )
20 );
21
22 // Create a PDF Device and specify options and output file
23 try (PdfDevice device = new PdfDevice(options, "output.pdf")) {
24
25 // Render HTML to PDF
26 document.renderTo(device);
27 }
28}ImageRenderingOptions позволяет настраивать широкий диапазон параметров: от сглаживания, конфигурации рендеринга текста, выбора формата, до сжатия изображения. В следующем примере показано, как установить разрешение и сглаживание полученного изображения:
1// Render HTML to JPG with custom resolution and antialiasing settings with Java
2
3// Prepare HTML code
4String code = "<div>Hello, World!!</div>";
5
6// Initialize an instance of the HTMLDocument class based on prepared code
7try (HTMLDocument document = new HTMLDocument(code, ".")) {
8
9 // Create an instance of the ImageRenderingOptions class
10 ImageRenderingOptions options = new ImageRenderingOptions();
11 options.setFormat(ImageFormat.Jpeg);
12
13 // Disable smoothing mode
14 options.setSmoothingMode(SmoothingMode.None);
15
16 // Set the image resolution as 75 dpi
17 options.setVerticalResolution(Resolution.fromDotsPerInch(75));
18 options.setHorizontalResolution(Resolution.fromDotsPerInch(75));
19
20 // Create an instance of the ImageDevice class
21 try (ImageDevice device = new ImageDevice(options, "output.jpg")) {
22
23 // Render HTML to Image
24 document.renderTo(device);
25 }
26}Хотя метод
renderTo(device) класса
Document дает вам возможность отправить один документ на выходное устройство рендеринга, напрямую используя экземпляры
Renderer вы можете отправить несколько файлов одновременно. Aspose.HTML for Java предоставляет следующую реализацию средств рендеринга:
HtmlRenderer,
SvgRenderer,
MhtmlRenderer и
EpubRenderer, которые используются для рендеринга HTML, SVG, MHTML и EPUB соответственно.
Следующий пример демонстрирует, как использовать HtmlRenderer для рендеринга нескольких HTML-документов:
1// Merge HTML to PDF using Java
2
3// Prepare HTML code
4String code1 = "<br><span style='color: green'>Hello, World!!</span>";
5String code2 = "<br><span style='color: blue'>Hello, World!!</span>";
6String code3 = "<br><span style='color: red'>Hello, World!!</span>";
7
8// Create three HTML documents to merge later
9HTMLDocument document1 = new HTMLDocument(code1, ".");
10HTMLDocument document2 = new HTMLDocument(code2, ".");
11HTMLDocument document3 = new HTMLDocument(code3, ".");
12
13// Create an instance of HTML Renderer
14HtmlRenderer renderer = new HtmlRenderer();
15
16// Create an instance of the PdfDevice class
17try (PdfDevice device = new PdfDevice("output.pdf")) {
18
19 // Merge all HTML documents to PDF
20 renderer.render(device, new HTMLDocument[]{document1, document2, document3});
21}Еще одна важная функция, доступная для рендереров, – это настройка таймаута. Вы можете использовать его, чтобы указать, как долго вы готовы ждать завершения всех внутренних процессов, связанных с жизненным циклом документа, таких как загрузка ресурсов, активные таймеры и т. д. Конечно, вы можете указать бесконечный период ожидания. Однако если документ содержит скрипт с бесконечным циклом, ждать придется бесконечно. В примере ниже показано, как использовать параметр timeout в методе
render(device, timeout, documents):
1// Render HTML to PDF with timeout settings using Java
2
3// Prepare HTML code
4String code = "< script >\n" +
5 " var count = 0;\n" +
6 " setInterval(function()\n" +
7 " {\n" +
8 " var element = document.createElement('div');\n" +
9 " var message = (++count) + '. ' + 'Hello, World!!';\n" +
10 " var text = document.createTextNode(message);\n" +
11 " element.appendChild(text);\n" +
12 " document.body.appendChild(element);\n" +
13 " },1000);\n" +
14 "</script >\n";
15
16// Initialize an HTML document based on prepared HTML code
17try (HTMLDocument document = new HTMLDocument(code, ".");) {
18
19 // Create an instance of HTML Renderer
20 HtmlRenderer renderer = new HtmlRenderer();
21
22 // Create an instance of the PdfDevice class
23 try (PdfDevice device = new PdfDevice("output.pdf")) {
24
25 // Render HTML to PDF
26 renderer.render(device, 5, document);
27 }
28}Aspose.HTML for Java – это мощная и гибкая библиотека для рендеринга HTML, MHTML, EPUB и SVG в различные форматы, такие как PDF, XPS, DOCX и изображения. Класс Converter быстро и легко использовать для решения простых задач. Однако, если вам нужен больший контроль над параметрами рендеринга, используйте метод renderTo(device).
Благодаря широкому спектру параметров рендеринга и настраиваемых функций разработчики имеют полный контроль над выводом, включая разрешение, настройки страницы, типы мультимедиа CSS и конфигурации для конкретного устройства. Гибкость API, демонстрируемая возможностью использования нескольких средств визуализации, настройки общих и специфичных для формата параметров и даже управления тайм-аутами, делает его отличным выбором для создания высококачественных настраиваемых документов.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.