我正在尝试找到一种方法来打开 webarchive 文件或将其转换为 C# 中的任何其他格式。目标是一个对文件类型的限制尽可能少的自动导入系统。除了使用 safari 打开它之外,我似乎找不到任何转换文件的方法。
1 回答
不幸的是,您正在寻找的东西无法真正完成。webarchive 是 Apple 制作的一种专有文件类型,用于在 Safari 中显示离线网页。这是 xml、html 和二进制数据的组合,但在 Objective-C 中有一些示例可以将 webarchive 转换为包含 html 和嵌入的图像/媒体的 zip 存档,这些图像/媒体最初显示在网站上并保存到网络存档文件。
这是来自 GitHub 的 Objective-C 示例 - WebArchiveExtractor
至于转换为 PDF ......不确定是否可以完成,您最好先将网页打印为 PDF,然后将其上传到您的文档管理系统。
显然,虽然 webarchive 文件类型包含带有二进制编码图像/媒体的 XML,类似于 MHTML 文件,所以您可以通过在文本编辑器中查看它们然后编写转换实用程序来确定格式,但是关于webarchive 文件格式的内部架构,因此这可能是一项艰巨的任务。但是,由于 WebKit 是开源的,您可以查看他们创建存档的代码并尝试反转它来构建您的转换器。这是 Safari 中归档功能的源代码(C++ 中),实际上看起来他们正在使用 mhtml,但我还没有深入研究以确定它是否完全相同格式:http ://trac.webkit.org /browser/trunk/Source/WebCore/loader/archive
祝你好运!