65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.62/5 (6投票s)

2008年10月6日

CPOL

3分钟阅读

viewsIcon

83722

downloadIcon

3038

本文介绍了以编程方式向 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 将在此节点中引用。

实现细节

综上所述,动态嵌入图像是一个非常简单的过程。 它可以概括为三点

  1. 查找图像标签节点:此节点在 document.xml 中由节点描述。 应该使用 XPathNodeIterator 搜索 document.xml 中带有标签名称的此节点。
  2. 查找图像节点的关系 ID:确定图像占位符节点后,应确定此节点的关系 ID。 关系 ID 作为节点属性的一部分找到。
  3. 应该用我们的新图像替换由关系 ID 引用的图像:找到图像关系 ID 后,媒体文件夹中相应的图像应替换为我们的新图像。

整个过程的源代码已随本文上传,可以在此处找到。 将示例模板文档和示例图像放在程序的 bin/debug 文件夹中,然后执行它。

历史

  • 2008 年 10 月 6 日:初始帖子
© . All rights reserved.