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