4

我需要一个从 xhtml 源创建 docx 文件的自动化过程。xhtml 文件包含图像(<img>元素),其“src”属性指向外部引用。但是 docx 文件需要在没有网络连接的情况下可读,所以我需要找到一种方法将图像直接嵌入到 docx 包中(即在 /media 文件夹中)。

到目前为止,我已经使用 altChunk 方法(如Eric White所述)来创建 .docx 文件。我曾希望使用 OpenXML SDK 将图像部分插入到包中。但要做到这一点,我需要<p>在文档中插入段落(节点)。不幸的是,文档部分只包含对 altChunk 的引用(单独存储在 docx 包中)。当然,一旦打开、编辑和保存了 docx,altChunk 部分就会被移除,并且它的内容会正确地嵌入到 document.xml 中。但我不知道有什么方法可以以编程方式做到这一点,所以这无济于事。

我考虑过的其他选择:

  1. 将 xhtml 划分为多个段,在每个图像之间分隔,然后一次添加每个 altChunk 一个,在每个图像之间使用适当的图像引用。(乏味但似乎可能)
  2. 将图像插入媒体文件夹,然后想办法将 WordProcessingML 直接嵌入到 xhtml 中,以便<img>引用打包的图像文件。(充其量是有问题的)有人能想到更好的方法吗?
4

1 回答 1

1

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

所以我突然意识到我可以完全绕过 altchunk 路径,只需使用 mHtml 作为从 xHtml 到 docx 的“网关”。我只是将 xHtml 转换为 mHtml,包含嵌入的图像尾注,然后使用 .doc 扩展名重命名文件。生成的文档可以直接用 Word 打开(并且在后续保存时会更正确地转换)。到目前为止,它运行良好(尽管在 Mac 的 Word 版本以及 Word2003 中存在一些错误)。

于 2009-10-05T15:38:11.830 回答