我需要一个自动化过程来从XHTML源创建DOCX文件。 XHTML文件包含图像(<img> 元素)其“ SRC”属性指向外部引用。但是DOCX文件需要无需网络连接即可读取,因此我需要找到一种将图像直接嵌入DOCX软件包(即 /媒体文件夹中)的方法。

到目前为止,我已经使用了Altchunk方法(如 埃里克·怀特(Eric White))创建.docx文件。我曾希望使用OpenXML SDK将图像零件插入包装中。但是要这样做,我需要插入段落(<p> 节点)。不幸的是,该文档部分只包含对Altchunk的引用(单独存储在DOCX软件包中)。当然,一旦打开,编辑和保存DOCX,则删除了Altchunk零件,并且其内容已正确嵌入文档中。但是我不知道有任何方法可以通过程序做到这一点,因此这无济于事。

我考虑过的其他选项:

  1. 将XHTML划分为段,在每个图像之间分开,然后一次添加每个图像,并在每个图像之间使用适当的图像参考。 (乏味,但似乎有可能)
  2. 将图像插入媒体文件夹,然后找到直接嵌入WordProcessingml的方法 <img> 参考包装图像文件。 (充其量是值得怀疑的)谁能想到更好的方法?
有帮助吗?

解决方案

好吧,我解决了自己的问题:我决定将文档转换为MHTML(可以包含直接嵌入文件中的图像),然后使用Altchunk创建最终的DOCX文件。但是,我仍然想在文件上进行一些后处理(以在Word文档中插入尾注),但是如上所述,这是不可能的 Altchunk已转换为DOCX,无法编程完成。

因此,我可以完全绕过Altchunk路径,并简单地将MHTML用作从XHTML到DOCX的“网关”。我只是将XHTML转换为MHTML,并配有嵌入式图像 endNotes,然后用.doc扩展名重命名文件。可以通过Word直接打开所得文档(并且将在后续保存中更正确地转换)。到目前为止,它运行良好(尽管Mac的Word版本中有一些错误以及Word2003中的一些错误)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top