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

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

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

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

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

SaveOptions

SaveOptions – это базовый класс опций для операций сохранения. Это может помочь вам управлять связанными ресурсами. В следующей таблице показан список доступных параметров:

OptionDescription
UrlRestrictionApplies restrictions to the host or folders where resources are located.
MaxHandlingDepthIf you need to save not the only specified HTML document, but also the linked HTML pages, this option gives you the ability to control the depth of the linked pages that should be saved.
JavaScriptThis option specifies how do we need to treat the JavaScript files: it could be saved as a separated linked file, embed into HTML file or even be ignored.
DefaultThis options specifies behavior for other than JavaScript files.

Сохранить HTML

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

 1// Prepare an output path for a document saving
 2String documentPath = "save-to-file.html";
 3
 4// Initialize an empty HTML document
 5com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument();
 6
 7// Create a text node and add it to the document
 8Text text = document.createTextNode("Hello World!");
 9document.getBody().appendChild(text);
10
11// Save the HTML document to a file
12document.save(documentPath);

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

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

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

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

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

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

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

 1// Prepare an output path for a document saving
 2String documentPath = "save-to-MTHML.mht";
 3
 4// Prepare a simple HTML file with a linked document
 5File.writeAllText("document.html", "<p>Hello World!</p>" +
 6        "<a href='linked-file.html'>linked file</a>");
 7// Prepare a simple linked HTML file
 8File.writeAllText("linked-file.html", "<p>Hello linked file!</p>");
 9
10// Load the "document.html" into memory
11com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("document.html");
12
13// Save the document to MHTML format
14document.save(documentPath, com.aspose.html.saving.HTMLSaveFormat.MHTML);

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

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

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

 1// Prepare an output path for a document saving
 2String documentPath = "save-to-MD.md";
 3
 4// Prepare HTML code
 5String html_code = "<H2>Hello World!</H2>";
 6
 7// Initialize a document from the string variable
 8com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument(html_code, ".");
 9
10// Save the document as a Markdown file
11document.save(documentPath, com.aspose.html.saving.HTMLSaveFormat.Markdown);

Дополнительные сведения об использовании конвертера Markdown вы найдете в статье HTML to Markdown.

Сохранить SVG

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

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

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

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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.