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

C# 在c中打开或转换webarchive文件#,c#,webarchive,C#,Webarchive,我正在试图找到一种方法来打开webarchive文件或将其转换为C#中的任何其他格式。目标是一个自动导入系统,对文件类型的限制尽可能少。除了使用safari打开文件,我似乎找不到任何转换文件的方法 不幸的是,你正在寻找的东西无法真正实现。webarchive是苹果公司制作的一种专有文件类型,用于在Safari中显示脱机网页。这是xml、html和二进制数据的组合,但Objective-C中有将webarchive转换为zip存档的示例,其中包含最初显示在网站上并保存到webarchive文件中的

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

不幸的是,你正在寻找的东西无法真正实现。webarchive是苹果公司制作的一种专有文件类型,用于在Safari中显示脱机网页。这是xml、html和二进制数据的组合,但Objective-C中有将webarchive转换为zip存档的示例,其中包含最初显示在网站上并保存到webarchive文件中的html和嵌入图像/媒体

下面是来自GitHub的Objective-C示例-

至于转换为PDF…不确定是否可以做到,您最好先将网页打印为PDF,然后将其上载到您的文档管理系统

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


祝你好运

webarchive格式是Apple的专有格式,并且仅针对Safari而设计。你想用它做什么?这里有一个github链接,一个人开发了一个使用Objective-C提取webarchives的应用程序,这可能会对你有所帮助:我正在尝试将它导入文档管理系统。你为什么不将它作为webarchive加载到文档管理系统中呢?您试图将其转换为什么?文档管理系统将不接受webarchive文件。我最后希望转换成pdf格式。否决票是因为普遍存在的错误信息,即该格式是专有的。是WebResource、WebArchive和相关API已发布。@Grabrin作为需要立即打开其中一个文件的人,发布的“标准”并没有什么帮助。在这十一年中,没有人编写或移植一个工具来读取linux/unix/bsd上的.webarchive文件。@spar…