以编程方式将图像添加到 Word 文档(Microsoft Office 2007)






3.62/5 (6投票s)
本文介绍了以编程方式向 Word 文档添加图像的详细信息。
引言
本文介绍了以编程方式向 Word 文档添加图像的详细信息。
背景
让我们假设一个包含带有某些标签值的图像占位符的示例文档。对于那些知道如何向 Word 文档添加图像占位符的人,他们可以跳过下一部分,直接查看实现细节。
如何向 Word 文档添加图像占位符
- 打开 Word 文档。
- 转到“开发人员”选项卡。
- 单击显示“图片内容控件”的图标。
- 单击图标后,一个图像占位符将添加到 Word 文档中。选择占位符,然后单击图标旁边的“属性”按钮。
这将打开“内容控件属性”窗口。 - 添加标题和标签名称值。本文源代码中使用的图像占位符的标签名称是
ImagePlaceHolder1
。 - 现在保存文档,然后关闭它。
我们现在有一个带有图像占位符的文档。
我已经上传了一个包含所有这些操作的示例 Word 文档。它可以在 DocxImages\DocxImages\SampleTemplate 文件夹中找到。
现在这只是一个占位符。我们的要求是在运行时将图像(由我们选择)嵌入到此占位符中。本文的其余部分处理这个问题。
动态将图像嵌入到占位符中
现在我们有了模板 Word 文档。假设我们已经有一个图像文件。为了简单起见,我假设我手头已经有一个静态图像文件。在实际场景中,它可以是动态创建的图像,例如图表等。
我已经将模板和示例图像都放在程序的 bin/debug 文件夹中。
在进入实现细节之前,让我给您一些基础知识。
- 在 Word 2007 存档中,有一个 media 文件夹,其中存储了所有图像文件。
- 此外,每个图像都由一个关系 ID 描述。这个数字以及图像路径在文件 word\_rels\document.xml.rels 中描述。
- 主文档 XML 文件,即 document.xml 将包含一个节点 "",用于描述图像占位符。 关系 ID 将在此节点中引用。
实现细节
综上所述,动态嵌入图像是一个非常简单的过程。 它可以概括为三点
- 查找图像标签节点:此节点在 document.xml 中由节点描述。 应该使用
XPathNodeIterator
搜索 document.xml 中带有标签名称的此节点。 - 查找图像节点的关系 ID:确定图像占位符节点后,应确定此节点的关系 ID。 关系 ID 作为节点属性的一部分找到。
- 应该用我们的新图像替换由关系 ID 引用的图像:找到图像关系 ID 后,媒体文件夹中相应的图像应替换为我们的新图像。
整个过程的源代码已随本文上传,可以在此处找到。 将示例模板文档和示例图像放在程序的 bin/debug 文件夹中,然后执行它。
历史
- 2008 年 10 月 6 日:初始帖子