从编辑后的 HTML 创建 MHTML 归档
Aspose.HTML for .NET
将 HTML 加载到可编辑的
HTMLDocument
中。C# 应用程序更改 DOM 节点、文本、属性或样式后,
MHTMLSaveOptions
会将生成的 HTML 和已处理资源打包为 MHTML 或 MHT Web 归档。
此工作流从可编辑 HTML 创建新的 MHTML 归档,不会将现有 .mhtml 或 .mht 归档作为可编辑 HTML DOM 打开。
更新 HTML 内容并将其保存为 MHTML
以下示例加载 input.html,更新第一个段落,并将修改后的文档及其已处理资源写入 edited.mhtml。
从编辑后的 HTML 创建 MHTML 的 C# 代码
using Aspose.Html;
using Aspose.Html.Dom;
using Aspose.Html.Saving;
using HTMLDocument document = new HTMLDocument("input.html");
// Update the HTML DOM before creating the archive
Element paragraph = document.QuerySelector("p");
if (paragraph != null)
{
paragraph.TextContent = "Updated paragraph text.";
paragraph.SetAttribute("class", "updated-content");
}
// Package the edited HTML and handled resources as MHTML
MHTMLSaveOptions options = new MHTMLSaveOptions();
document.Save("edited.mhtml", options);
从编辑后的 HTML 创建 MHTML 的步骤
- 使用
HTMLDocument构造函数加载可编辑的源文件。 - 使用
QuerySelector()或其他导航方法定位所需 DOM 节点。 - 创建归档之前,更新元素内容、属性或样式。
- 创建
MHTMLSaveOptions实例,并在默认行为无法满足要求时配置资源处理方式。 - 调用
Save(),传入 MHTML 选项以及扩展名为.mhtml或.mht的输出路径。
MHTML 创建功能与限制
- 打包前编辑。 使用与 HTML 编辑工作流 相同的节点、选择器、属性、文本和样式 API 更改 HTML DOM。
- 创建单文件 Web 归档。 将编辑后的 HTML 和已处理资源打包为 MHTML 文件,以便存储、传输或离线使用。
- 控制资源处理。 使用
MHTMLSaveOptions.ResourceHandlingOptions配置归档工作流中的 URL 限制、链接页面深度及资源处理方式。 - 处理无法访问的资源。 无法检索远程图像、样式表、字体或脚本,或者配置的限制排除了这些资源时,它们可能不会包含在归档中。
- 通过专用工作流处理现有归档。 使用 MHTML 转 PDF 生成固定布局输出,或使用 MHTML 合并 将多个归档渲染为一个结果。
- 仅需打包时使用转换页面。 如果不需要更改 DOM,请参阅 HTML 转 MHTML 获取专门的转换示例。
HTML 编辑和 MHTML 文档
阅读
编辑 HTML 文档
,了解 DOM 修改示例。
将 HTML 转换为 MHTML
指南说明归档创建和 MHTMLSaveOptions。有关可编辑 HTML 文档与 MHTML 渲染工作流之间的区别,请参阅
创建或加载 HTML 文档
。
安装 Aspose.HTML for .NET
使用 .NET CLI 从 NuGet 安装 Aspose.HTML for .NET :
dotnet add package Aspose.HTML
您也可以使用 NuGet 包管理器界面,或在包管理器控制台中运行 Install-Package Aspose.HTML。有关配置详情,请参阅
安装指南
;如需不受评估版限制地测试 API,请申请
临时许可证
。
HTML 到 MHTML 工作流常见问题
1. 可以从 HTML 字符串或流创建 MHTML 吗?
可以。从字符串或流创建 HTMLDocument;当内容使用相对资源引用时,请提供基 URL。应用所需的 DOM 更改,然后调用带有 MHTMLSaveOptions 的 Save() 写入归档。
2. MHTML 和 MHT 是不同的格式吗?
不是。.mhtml 和 .mht 是同一种 MIME HTML Web 归档格式的常用扩展名。请选择接收应用程序或存储规范要求的扩展名。
3. MHTML 输出会包含所有链接的图像、样式表、字体和脚本吗?
归档可以包含可访问且资源设置允许的已处理资源。无效 URL、身份验证要求、网络限制或保存选项过滤器都可能阻止资源被包含。
4. 保存 MHTML 会更改源 HTML 文件吗?
不会。DOM 更改存在于内存中的 HTMLDocument,MHTML 保存操作会在所选输出路径写入单独归档。只有应用程序明确覆盖源文件时,源文件才会更改。
5. MHTML 输出等同于 PDF 输出吗?
不等同。MHTML 是一种 MIME Web 归档,用于存储 HTML 及相关资源,供后续按浏览器方式处理。PDF 是固定布局的渲染文档,用于一致的查看、打印和分发。