Java Apache POI: insert an image quot;infront the textquot;(Java ApachePOI:在文本前面插入图像)
问题描述
我的docx文件中有一个占位符图像,我想用新图像替换它。问题是--占位符图像在文本前面有一个属性,而新图像没有。因此,对齐方式会中断。下面是我的代码片段以及带有占位符的docx和结果docx。带占位符的图像:
enter image description here
生成的图像:
enter image description here
推荐答案
若要替换Microsoft Word中的图片模板,无需将其删除。
存储是这样的: 嵌入的媒体以二进制文件的形式存储。这是图片数据(XWPFPictureData
)。在文档中,图片元素(XWPFPicture
)链接到该图片数据。
XWPFPicture
具有位置、大小和文本流动设置。不需要更改这些设置。
需要在XWPFPictureData
中更改。在那里,用户可以用新的二进制内容替换旧的二进制内容。
XWPFPicture
。在文档中插入图片时存储了一个非视觉图片名称。因此,如果一个人知道这个名字,那么这可能是找到这张照片的标准。
如果找到,则可以从找到的XWPFPicture
获得XWPFPictureData
。有方法XWPFPicture.getPictureData
可以这样做。然后,可以用新的二进制内容替换旧的二进制内容XWPFPictureData
。XWPFPictureData
是一个包部件。因此它必须PackagePart.getOutputStream
获取要写入的输出流。
下面的完整示例显示了全部。
source.docx
需要具有名为&qot;QRTemplate.jpg";的嵌入图片。这是使用Word图形用户界面将图片插入Word文档时使用的源文件的名称。并且需要包含新内容的文件QR.jpg
。
然后result.docx
将名为";QRTemplate.jpg";的所有图片替换为给定文件QR.jpg
的内容。
这篇关于Java ApachePOI:在文本前面插入图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!