Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Чтобы сохранить HTML-документ в C#, создайте или загрузите HTMLDocument, при необходимости обновите DOM и вызовите HTMLDocument.Save(). Используйте HTMLSaveOptions, когда нужно управлять сохранением связанных ресурсов, или HTMLSaveFormat, когда HTML сохраняется как MHTML или Markdown.
После загрузки существующего файла или создания HTML-документа с нуля можно сохранить изменения с помощью одного из методов HTMLDocument.Save(). Aspose.HTML for .NET предоставляет перегрузки для сохранения документа в файл, URL, поток или пользовательский обработчик ресурсов.
Эта статья посвящена основным сценариям сохранения HTML-подобных документов: сохранению HTML-файла, сохранению HTML как MHTML или Markdown и сохранению SVG-документов. Если документ содержит связанные CSS, изображения, скрипты или требует пользовательского хранилища вывода, см. статью Сохранить HTML с ресурсами.
API предлагает два связанных, но разных подхода к созданию выходных данных:
Класс
HTMLDocument представляет HTML-документ в памяти. После создания или загрузки документа и изменения через DOM вызовите одну из перегрузок Save(), чтобы записать текущее состояние документа в выходной результат.
| API | Для чего использовать |
|---|---|
| HTMLDocument.Save() | Сохраняет текущий HTML-документ в файл, URL, поток или обработчик ресурсов в зависимости от перегрузки. |
| SaveOptions | Задает базовые параметры сохранения и доступ к ResourceHandlingOptions для связанных ресурсов. |
| ResourceHandlingOptions | Управляет обработкой связанных ресурсов. Поведение Default равно Save, то есть ресурсы сохраняются как файлы, когда применяется сохранение ресурсов. |
| HTMLSaveFormat | Выбирает формат сохранения HTML, например HTML, MHTML или Markdown, при использовании перегрузок с форматом. |
| SVGDocument | Представляет SVG-документы и поддерживает похожие сценарии загрузки, редактирования и сохранения. |
Самый простой сценарий сохранения – создать HTML-документ, добавить содержимое и сохранить его как локальный .html файл. Это удобно, когда вы программно генерируете HTML или изменяете существующий документ и хотите записать результат на диск.
Чтобы сохранить HTML-документ в файл на C#:
Следующий пример C# показывает самый простой способ сохранить HTML-файл:
1// Save HTML to a file using C#
2
3// Prepare an output path for a document saving
4string documentPath = Path.Combine(OutputDir, "save-to-file.html");
5
6// Initialize an empty HTML document
7using (HTMLDocument document = new HTMLDocument())
8{
9 // Create a text element and add it to the document
10 Text text = document.CreateTextNode("Hello, World!");
11 document.Body.AppendChild(text);
12
13 // Save the HTML document to the file on a disk
14 document.Save(documentPath);
15}В примере выше конструктор HTMLDocument() инициализирует пустой HTML-документ. Метод CreateTextNode(data) создает текстовый узел, а Save(path) записывает документ по указанному пути.
Для документов, которые ссылаются на CSS, изображения, скрипты или другие файлы, сохранения только основного HTML-файла часто недостаточно. Используйте Сохранить HTML с ресурсами, когда нужно сохранить связанные файлы вместе с документом.
Перечисление HTMLSaveFormat задает формат, в котором сохраняется HTML-документ. Его используют, когда нужен HTML-подобный выходной формат, а не отрендеренный PDF, XPS, DOCX или изображение.
В некоторых случаях нужно сохранить веб-страницу как один файл. MHTML – формат веб-архива, который хранит HTML и связанные ресурсы внутри одного файла. Следующий пример показывает, как использовать Save(path, saveFormat) для сохранения HTML в MHTML.
Чтобы сохранить HTML как MHTML на C#:
HTMLDocument.document.Save(path, HTMLSaveFormat.MHTML)..mht файл как однофайловый веб-архив. 1// Save HTML as MHTML using C#
2
3// Prepare an output path for a document saving
4string savePath = Path.Combine(OutputDir, "save-to-mhtml.mht");
5
6// Prepare a simple HTML file with a linked document
7File.WriteAllText("save-to-mhtml.html", "<p>Hello, World!</p>" +
8 "<a href='linked-file.html'>linked file</a>");
9
10// Prepare a simple linked HTML file
11File.WriteAllText("linked-file.html", "<p>Hello, linked file!</p>");
12
13// Load the "save-to-mhtml.html" into memory
14using (HTMLDocument document = new HTMLDocument("save-to-mhtml.html"))
15{
16 // Save the document to MHTML format
17 document.Save(savePath, HTMLSaveFormat.MHTML);
18}Сохраненный файл save-to-mhtml.mht содержит HTML из save-to-mhtml.html и связанный файл linked-file.html.
Markdown – язык разметки с простым текстовым синтаксисом. Используйте HTMLSaveFormat для сохранения HTML в Markdown, когда нужен редактируемый Markdown-вывод из HTML-документа.
Чтобы сохранить HTML как Markdown на C#:
HTMLDocument.document.Save(path, HTMLSaveFormat.Markdown)..md файл в Markdown-документации или других контент-сценариях. 1// Save HTML as Markdown using C#
2
3// Prepare an output path for a document saving
4string documentPath = Path.Combine(OutputDir, "save-html-to-markdown.md");
5
6// Prepare HTML code
7string html_code = "<H2>Hello, World!</H2>";
8
9// Initialize a document from a string variable
10using (HTMLDocument document = new HTMLDocument(html_code, "."))
11{
12 // Save the document as a Markdown file
13 document.Save(documentPath, HTMLSaveFormat.Markdown);
14}Для сценариев конвертации HTML в Markdown через API конвертации и настройки преобразования см. Преобразование HTML в Markdown.
Обычно SVG встречается как часть HTML-файла и используется для векторной графики: изображений, иконок, диаграмм или схем. Но SVG также можно загрузить и обрабатывать как самостоятельный документ.
Поскольку SVGDocument и HTMLDocument основаны на одном стандарте WHATWG DOM, сценарии загрузки, чтения, редактирования, конвертации и сохранения похожи для обоих типов документов.
Чтобы сохранить SVG-документ на C#:
Save() с целевым путем к файлу..svg файл как самостоятельный векторный документ. 1// Create and save SVG image using C#
2
3// Prepare an output path for a document saving
4string documentPath = Path.Combine(OutputDir, "create-and-save-svg.svg");
5
6// Prepare SVG code
7string code = @"
8 <svg xmlns='http://www.w3.org/2000/svg' height='200' width='300'>
9 <g fill='none' stroke-width= '10' stroke-dasharray='30 10'>
10 <path stroke='red' d='M 25 40 l 215 0' />
11 <path stroke='black' d='M 35 80 l 215 0' />
12 <path stroke='blue' d='M 45 120 l 215 0' />
13 </g>
14 </svg>";
15
16// Initialize an SVG instance from the content string
17using (SVGDocument document = new SVGDocument(code, "."))
18{
19 // Save the SVG file to a disk
20 document.Save(documentPath);
21}Дополнительные сведения об основах SVG, рисовании и использовании API для обработки и рендеринга SVG-документов см. в документации Aspose.SVG for .NET.
| Проблема | Причина | Решение |
|---|---|---|
| В сохраненном HTML нет изображений или CSS | Был сохранен только основной HTML-файл, или связанные ресурсы не обработаны как требуется. | Используйте SaveOptions и сценарии обработки ресурсов из статьи
Сохранить HTML с ресурсами. |
Ожидается MHTML, но создается .html файл | Использована перегрузка сохранения без HTMLSaveFormat.MHTML. | Используйте Save(path, HTMLSaveFormat.MHTML), когда нужен однофайловый веб-архив. |
| Markdown-вывод отличается от внешнего вида отрендеренной страницы | Markdown хранит структуру и текст документа, а не визуальное представление. | Используйте Markdown для редактируемого контента, а для PDF, изображений и фиксированной верстки применяйте конвертацию или рендеринг. |
| Изменения SVG не сохранены | SVGDocument был изменен в памяти, но Save() не вызвали с целевым путем. | Сохраните SVG-документ после завершения изменений DOM. |
Создайте или загрузите HTMLDocument, при необходимости измените его и вызовите document.Save(path), чтобы записать документ в локальный файл.
Сохранение оставляет HTML-подобный формат документа и использует SaveOptions. Рендеринг создает визуальный результат, например PDF, XPS, DOCX или изображения, и использует параметры рендеринга.
Да. Используйте HTMLSaveFormat.MHTML, чтобы сохранить HTML как MHTML веб-архив, когда рабочему процессу нужен один файл.
Да. Используйте HTMLSaveFormat.Markdown, когда нужен Markdown-вывод из HTML-документа.
Полные примеры C# и файлы данных доступны в репозитории Aspose.HTML for .NET на GitHub.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.