将图像添加到从altchunk创建的openxml doc中

时间:2009-08-15 03:02:58

标签: xhtml openxml docx

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

到目前为止,我已经使用altChunk方法(如Eric White所述)来创建.docx文件。我原本希望使用OpenXML SDK将图像部分插入到包中。但要做到这一点,我需要在文档中插入段落(<p>节点)。不幸的是,文档部分只包含对altChunk的引用(单独存储在docx包中)。当然,一旦打开,编辑和保存docx,就会删除altChunk部分,并将其内容正确嵌入到document.xml中。但我不知道有任何方式以编程方式做到这一点,所以这没有帮助。

我考虑过的其他选择:

  1. 将xhtml分割成段,在每个图像之间分开,然后一次添加一个altChunk,每个altChunk之间有适当的图像引用。 (乏味但似乎有可能)
  2. 将图像插入媒体文件夹,然后找到将WordProcessingML直接嵌入到xhtml中的方法,以便<img>引用打包的图像文件。 (充其量可疑) 谁能想到更好的方法?

1 个答案:

答案 0 :(得分:0)

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

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