【问题标题】:When embedding RTF file into DOCX file using OpenXML, embedded contents don't display in some viewers使用 OpenXML 将 RTF 文件嵌入 DOCX 文件时,嵌入的内容不会显示在某些查看器中
【发布时间】:2015-04-11 07:05:30
【问题描述】:

使用this answer 中的技术,我使用 OpenXML 2.5 成功地将 RTF 文件的内容嵌入到现有的 Word DOCX 文件中。或者我是这么想的。

我们现在发现,虽然创建的文件在 MS Word 和 Word Online 中运行良好,但文档在其他查看器上显示时没有 RTF 内容,例如:

  • Google 文档预览功能
  • Windows Phone 8.1(内置 Office 功能)
  • 各种 iOS 和 Android 查看器

在所有情况下,文档显示完全正确,只是缺少 RTF 内容。

我确实认为这可能是查看器中的问题,而不是 DOCX 文件中的问题,但是对于有相同问题的几个工具,我怀疑这是我们代码中的错误。

这是一个有点晦涩难懂的案例,因此试图找出问题是很困难的。

【问题讨论】:

    标签: c# ms-word openxml openxml-sdk


    【解决方案1】:

    您使用的技术 (altChunk) 依赖于查看器将 RTF 内容转换为 WordML。

    正如你所发现的,很多人不这样做。

    为避免此问题,您必须在自己的代码中转换 RTF 内容。

    【讨论】:

    • 那么您认为这是观众的限制吗?这看起来很奇怪,因为在 OOXML 文件中,图像也是从 XML 中引用的单独文件,并且可以正常工作。我注意到如果我打开 .docx 文件并进行微小的编辑(不在嵌入的内容中)并重新保存,现在查看器就可以工作了。我想我需要区分档案中的主要 XML 文件...
    • 当您在 Word 中打开它时,它会将其转换为普通的 WordML,查看者当然可以处理。 (不知道你为什么提到图像?这里的问题是查看器是否可以处理替代格式输入部分,而不是图像部分)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多