用图像docx4j替换文本

时间:2012-11-22 14:04:38

标签: java image text replace docx4j

我有一个单词模板。有一张单词照片必须用图像替换。这必须使用Docx4Java完成。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

披露:我管理docx4j项目

VariableReplace 代码无法处理图片。

执行此操作的最佳方法是使用数据绑定内容控件,特别是通过XPath指向XML文档中基本64位编码图像的图片内容控件(有关详细信息,请参阅“入门”)。

但是,如果你想用图像替换一个单词,你可以这样做,但你必须写一些胶水代码。这很简单。

首先,找到这个词。您可以使用XPath或TraversalUtil执行此操作(有关详细信息,请参阅“入门”)。

希望它本身就在奔跑(w:r / w:t)。如果没有,您需要拆分运行,这样就不会替换相邻的文本。

然后,添加图像。请参阅示例 ImageAdd

我建议您查看在Word中添加图像时创建的XML(即保存并解压缩您的docx,然后查看document.xml)。请注意表示图像的XML处于正确的级别(例如w:p的子级)。

答案 1 :(得分:1)

如果特别想用图像替换文本(使用上面回答的 docx4j 是不可能的),您可以使用用图像替换书签作为替代方法。

只需打开模板化的 word 文件,将光标定位在所需位置并插入->书签并命名您的书签。 我按照说明 here 用图片替换了这个书签