在c#中打开或转换webarchive文件

时间:2014-07-07 15:21:07

标签: c# webarchive

我正在尝试找到一种方法来打开或转换webarchive文件到C#中的任何其他格式。目标是自动导入系统,尽可能减少对文件类型的限制。除了使用safari打开它,我似乎无法找到任何转换文件的方法。

1 个答案:

答案 0 :(得分:0)

不幸的是,你要找的东西真的无法完成。 webarchive是Apple制作的专有文件类型,用于在Safari中显示离线网页。这是xml,html和二进制数据的组合,但Objective-C中有一些示例可将webarchive转换为zip存档,其中包含最初显示在网站上的html和嵌入式图像/媒体,这些图像/媒体已保存到webarchive文件。

以下是GitHub的一个Objective-C示例 - WebArchiveExtractor

至于转换为PDF ...不确定是否可以完成,最好先将网页打印为PDF,然后将其上传到文档管理系统。

显然虽然webarchive文件类型包含具有类似于MHTML文件的二进制编码图像/媒体的XML,因此您可以通过在文本编辑器中查看格式然后编写转换实用程序来确定格式,但是这种格式非常有限Web上有关webarchive文件格式的内部架构的信息,因此这可能是一项艰巨的任务。但是,由于WebKit是开源的,您可以看到用于创建存档的代码,并尝试将其反转以构建转换器。这里是Safari中存档功能的源代码(用C ++编写),实际上看起来他们正在使用mhtml,但我没有深入探究它是否完全相同的格式:http://trac.webkit.org/browser/trunk/Source/WebCore/loader/archive

祝你好运!