是否有任何方法可以用apache poi替换图像名称上的图像(docx)文件标头?我在想:
---------------------------------------------
标题myimage.jpeg-
-----------身体---------------
-----------------------------------------替换图像(" myimage.jpeg",newpictureInputstream, " newpicture_name.jpeg");
在这里我尝试的东西:
XWPFParagraph originalParagraph = null;
originalParagraph = getPictureParagraphInHead(lookingPictureName);
ListIterator<XWPFRun> it = originalParagraph.getRuns().listIterator();
XWPFRun replacedRun = null;
while (it.hasNext()) {
XWPFRun run = it.next();
int runIDX = it.nextIndex();
if (run.getEmbeddedPictures().size() > 0) {
XWPFRun newRun = null;
newRun = new XWPFRun(run.getCTR(), (IRunBody) originalParagraph);
originalParagraph.addRun(newRun);
originalParagraph.removeRun(originalParagraph.getRuns().indexOf(run));
break;
}
}
我不确定是否可以使用POI获取图像的"文件名"。它可能在XML中,因此您可能必须制作自己的方法来查找图像。
获取您要做的标题:
XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(doc); // XWPFDocument
XWPFHeader header = policy.getDefaultHeader();
要删除图像,请从您的段落中获取XWPFrun(单元/行/表..)
CTR ctr = myRun.getCTR(); //
List<CTDrawing> images = ctr.getDrawingList();
for (int i=0; i<images.size(); i++)
{
ctr.removeDrawing(i);
}