Java 使用ApachePOI将图像添加到XWPFDocument

Java 使用ApachePOI将图像添加到XWPFDocument,java,apache-poi,Java,Apache Poi,我尝试将图像添加到XWPFDocument的标题中,但没有成功。我正在使用ApachePOI 以下是我目前使用的解决方案: 标题创建 XWPFDocument document = new XWPFDocument(OPCPackage.open(docxInputStream)); CTP headerCtp = CTP.Factory.newInstance(); CTR headerCtr = headerCtp.addNewR(); XWPFParagraph headerParagr

我尝试将图像添加到XWPFDocument的标题中,但没有成功。我正在使用ApachePOI

以下是我目前使用的解决方案:

标题创建

XWPFDocument document = new XWPFDocument(OPCPackage.open(docxInputStream));
CTP headerCtp = CTP.Factory.newInstance();
CTR headerCtr = headerCtp.addNewR();

XWPFParagraph headerParagraph = new XWPFParagraph(headerCtp, document);
XWPFRun run = headerParagraph.getRun(headerCtr);
InputStream pictureInputStream = new FileInputStream("D:\\logo.jpg");
run.addPicture(pictureInputStream, XWPFDocument.PICTURE_TYPE_JPEG, "logo.jpg", 300, 150);
pictureInputStream.close();
run.addTab();
run.setText(contentName);

setTabStop(headerCtp, STTabJc.Enum.forString("right"), BigInteger.valueOf(9000));

XWPFParagraph[] headerParagraphs = {headerParagraph};
CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
XWPFHeaderFooterPolicy headerFooterPolicy = new XWPFHeaderFooterPolicy(document, sectPr);
headerFooterPolicy.createHeader(STHdrFtr.DEFAULT, headerParagraphs);
设置停止方法

private static void setTabStop(CTP oCTP, STTabJc.Enum oSTTabJc, BigInteger oPos) {
    CTPPr oPPr = oCTP.getPPr();
    if (oPPr == null) {
        oPPr = oCTP.addNewPPr();
    }

    CTTabs oTabs = oPPr.getTabs();
    if (oTabs == null) {
        oTabs = oPPr.addNewTabs();
    }

    CTTabStop oTabStop = oTabs.addNewTab();
    oTabStop.setVal(oSTTabJc);
    oTabStop.setPos(oPos);
}
我遇到的问题是,图像是在运行时加载的,这意味着图片数组的大小是1,但是它没有显示在文档中

我尝试过许多解决方案,例如以下几种:

欢迎任何关于我可能做错了什么的提示和想法


谢谢。

哪一版本的Apache POI?如果它不是最新的,升级时会发生什么?我使用的是3.11版。如图所示,它绝对不是最新的。。。如前所述,当你升级时会发生什么?我已经更新到3.13,但没有用。图像仍无法显示。请阅读POI草稿行