Сохранить HTML-документ – Java

После работы с файлом HTML или создания документа HTML с нуля вы можете сохранить изменения, используя один из методов HTMLDocument.save(). Библиотека Java предоставляет классы SaveOptions и ResourceHandlingOptions, которые позволяют задавать параметры для операций сохранения.

В библиотеке Aspose.HTML for Java есть две разные концепции создания выходных файлов:

  • Первая концепция основана на создании HTML-подобных файлов в качестве вывода – файлов HTML, MHTML, Markdown и SVG. SaveOptions – это базовый класс для этого подхода, который помогает обрабатывать процесс сохранения связанных ресурсов, таких как сценарии, стили, изображения и т. д.
  • Вторая концепция может быть использована для визуального представления HTML в результате. Базовым классом для этой концепции является RenderingOptions; он имеет специализированные методы для указания размера страницы, полей страницы, разрешения, пользовательских стилей и т. д.

В этой статье описывается только то, как использовать класс SaveOptions и методы save() для сохранения HTML-документов. Чтобы узнать больше о механизме рендеринга, обратитесь к статье Конвертеры тонкой настройки.

Сохранить HTML

После внесения изменений в HTML вы можете сохранить документ используя один из методов HTMLDocument.save(). Следующий пример – самый простой способ сохранить HTML-файл:

1// Initialize an empty HTML document
2HTMLDocument document = new HTMLDocument();
3
4// Create a text node and add it to the document
5Text text = document.createTextNode("Hello World!");
6document.getBody().appendChild(text);
7
8// Save the HTML document to the file on a disk
9document.save($o("save-to-file.html"));

Пример выше довольно прост. Однако в реальных приложениях часто требуется дополнительный контроль над процессом сохранения. Следующие несколько разделов описывают, как использовать параметры обработки ресурсов или сохранять документ в различных форматах.

Сохранить HTML в файл

В следующем фрагменте кода показано, как использовать ResourceHandlingOptions для управления связанными документами. В примере мы создаем простой HTML-файл с нуля со связанным документом с именем «linked.html».

Чтобы применить параметры сохранения, мы используем конструктор HTMLSaveOptions() для создания экземпляра класса HTMLSaveOptions. Затем с помощью метода getResourceHandlingOptions() мы устанавливаем максимальную глубину обработки связанных ресурсов в параметрах сохранения на 1. Это означает, что сохранение HTML-документа будет включать в себя основной документ и любые напрямую связанные ресурсы до глубины 1. И, наконец, мы вызываем метод save(path, options) объекта документа вместе с указанными параметрами сохранения.

 1// Prepare a simple HTML file with a linked document
 2java.nio.file.Files.write(
 3        java.nio.file.Paths.get($o("save-with-linked-file.html")),
 4        "<p>Hello World!</p><a href='linked.html'>linked file</a>".getBytes());
 5
 6// Prepare a simple linked HTML file
 7java.nio.file.Files.write(java.nio.file.Paths.get(
 8        $o("linked.html")),
 9        "<p>Hello linked file!</p>".getBytes());
10
11// Load the "save-with-linked-file.html" into memory
12HTMLDocument document = new HTMLDocument($o("save-with-linked-file.html"));
13
14// Create a save options instance
15HTMLSaveOptions options = new HTMLSaveOptions();
16
17// The following line with value '0' cuts off all other linked HTML-files while saving this instance
18// If you remove this line or change value to the '1', the 'linked.html' file will be saved as well to the output folder
19options.getResourceHandlingOptions().setMaxHandlingDepth(1);
20
21// Save the document with the save options
22document.save($o("save-with-linked-file_out.html"), options);

Сохранить HTML в MHTML

В некоторых случаях вам нужно сохранить HTML документ в виде одного файла MHTML. Документ MHTML может быть очень полезен для этой цели, поскольку он представляет собой архив веб-страницы и хранит все внутри себя. HTMLSaveFormat указывает формат, в котором документ сохраняется, это могут быть форматы HTML, MHTML и MD. В приведенном ниже примере показано, как использовать метод save(path, saveFormat) для сохранения HTML в MHTML.

 1// Prepare a simple HTML file with a linked document
 2java.nio.file.Files.write(
 3        java.nio.file.Paths.get($o("document.html")),
 4        "<p>Hello World!</p><a href='linked-file.html'>linked file</a>".getBytes());
 5
 6// Prepare a simple linked HTML file
 7java.nio.file.Files.write(
 8        java.nio.file.Paths.get($o("linked-file.html")),
 9        "<p>Hello linked file!</p>".getBytes());
10
11// Load the "document.html" into memory
12HTMLDocument document = new HTMLDocument($o("document.html"));
13
14// Save the document to MHTML format
15document.save($o("save-to-MTHML.mht"), HTMLSaveFormat.MHTML);

Как и для примера Сохранить HTML в файл, вы можете использовать MHTMLSaveOptions и настроить необходимые параметры обработки связанных ресурсов при сохранении.

Сохранить HTML в Markdown

Markdown – это язык разметки с простым текстовым синтаксисом. Чтобы сохранить HTML как файлы Markdown, взгляните на следующий пример:

1// Prepare HTML code
2String html_code = "<H2>Hello World!</H2>";
3
4// Initialize a document from the string variable
5HTMLDocument document = new HTMLDocument(html_code);
6
7// Save the document as a Markdown file
8document.save($o("save-to-MD.md"), HTMLSaveFormat.Markdown);

Aspose.HTML for Java, в дополнение к функции сохранения HTML в Markdown, также предлагает конвертер HTML в Markdown. Дополнительные сведения об использовании конвертера вы найдете в статье HTML to Markdown.

Сохранить SVG

Обычно вы можете видеть документ SVG как часть файла HTML; он представляет векторные данные на странице: изображения, значки, таблицы и т. д. Однако SVG также можно извлечь из веб-страницы, и вы можете манипулировать им так же, как документом HTML. Поскольку SVGDocument и HTMLDocument основаны на одном и том же стандарте WHATWG DOM, все операции, такие как загрузка, чтение, редактирование, преобразование и сохранение, аналогичны для обоих документов. Итак, все примеры, в которых вы видите манипуляции с HTMLDocument, применимы и к SVGDocument.

Чтобы сохранить изменения в SVG, используйте следующее:

 1// Prepare SVG code
 2String code = "<svg xmlns='http://www.w3.org/2000/svg' height='200' width='300'>" +
 3        "<g fill='none' stroke-width= '10' stroke-dasharray='30 10'>" +
 4        "<path stroke='red' d='M 25 40 l 215 0' />" +
 5        "<path stroke='black' d='M 35 80 l 215 0' />" +
 6        "<path stroke='blue' d='M 45 120 l 215 0' />" +
 7        "</g>" +
 8        "</svg>";
 9
10// Initialize an SVG instance from the content string
11SVGDocument document = new SVGDocument(code, ".");
12
13// Save the SVG file to a disk
14document.save($o($o("save-to-SVG.svg")));

Заключение

  1. Пакет aspose.html.Saving позволяет разработчикам настраивать и оптимизировать процесс сохранения документов HTML и SVG с помощью расширенных параметров, таких как SaveOptions и ResourceHandlingOptions. Используя эти классы, вы можете эффективно управлять связанными ресурсами, выбирать определенные форматы вывода и настраивать процесс сохранения в соответствии с потребностями вашего приложения.
  2. Aspose.HTML for Java позволяет сохранять документы HTML в различных форматах, включая HTML, MHTML и Markdown, обеспечивая точный контроль и простоту.
  3. Примеры в этой статье демонстрируют простоту и мощь операций сохранения. Ознакомьтесь со статьей [Fine-Tuning Converters]( Fine-Tuning Converters), чтобы подробнее изучить параметры рендеринга и другие расширенные функции.

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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.