【问题标题】:open or convert webarchive File in c#在 C# 中打开或转换 webarchive 文件
【发布时间】:2014-08-28 03:25:48
【问题描述】:

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

【问题讨论】:

  • webarchive 格式是 Apple 专有的,根据 wiki article 仅为 Safari 设计。你想用它做什么?
  • 这是一个使用 Objective-C 开发用于提取 webarchives 的应用程序的人的 github 链接,这可能对您有所帮助:GitHub -WebArchiveExtractor
  • 我正在尝试将其导入文档管理系统。
  • 那你为什么不把它作为一个 webarchive 加载到你的文档管理系统中呢?你想把它转换成什么?
  • 文档管理系统不接受网络存档文件。我最终希望转换为 pdf。

标签: c# webarchive


【解决方案1】:

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

这是来自 GitHub 的 Objective-C 示例 - WebArchiveExtractor

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

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

祝你好运!

【讨论】:

  • 投反对票是因为常见的错误信息是格式是专有的。 fixed eleven years ago;已发布 WebResource、WebArchive 和相关 API。
  • @GrahamPerrin 作为现在需要打开其中一个文件的人,正在发布的“标准”并不是很有帮助。在这 11 年里,没有人编写或移植过用于在 linux/unix/bsd 上读取 .webarchive 文件的工具。
  • @Sparr work in progress ...
猜你喜欢
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
相关资源
最近更新 更多