Сохранить 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")));
Заключение
- Пакет
aspose.html.Saving позволяет разработчикам настраивать и оптимизировать процесс сохранения документов HTML и SVG с помощью расширенных параметров, таких как
SaveOptions
иResourceHandlingOptions
. Используя эти классы, вы можете эффективно управлять связанными ресурсами, выбирать определенные форматы вывода и настраивать процесс сохранения в соответствии с потребностями вашего приложения. - Aspose.HTML for Java позволяет сохранять документы HTML в различных форматах, включая HTML, MHTML и Markdown, обеспечивая точный контроль и простоту.
- Примеры в этой статье демонстрируют простоту и мощь операций сохранения. Ознакомьтесь со статьей [Fine-Tuning Converters]( Fine-Tuning Converters), чтобы подробнее изучить параметры рендеринга и другие расширенные функции.
Вы можете скачать полные примеры и файлы данных по адресу GitHub.