Docx4j在标题中添加图像不起作用

时间:2019-06-20 11:20:08

标签: java spring-boot docx4j

在docx4j中添加标头图片时遇到问题。
我收到错误消息“无法显示图片”。
请在下面的代码中进行更正。
我用link
检查了同样的问题 任何人都可以提供工作代码。
enter image description here 谢谢

    private static void createHeaderPart(WordprocessingMLPackage wordMLPackage, bFile) throws Exception {

     BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, wordMLPackage.getMainDocumentPart(), bFile);          
     int docPrId = 1; int cNvPrId = 2; 
     Inline inLine = imagePart.createImageInline("Filename hint", "Alternative text",
     docPrId, cNvPrId, false); 
     P paragraph0 = factory.createP();
     paragraph0.setPPr(paragraphProperties);
     R run0 = factory.createR();
     paragraph0.getContent().add(run0); 
     Drawing drawing = factory.createDrawing();
     run0.getContent().add(drawing);
     drawing.getAnchorOrInline().add(inLine);
     header.getContent().add(paragraph0);
     headerPart.setJaxbElement(header);
     Relationship relationship = wordMLPackage.getMainDocumentPart().addTargetPart(headerPart);
    List<SectionWrapper> sections = wordMLPackage.getDocumentModel().getSections();
    SectPr sectionProperties = sections.get(sections.size() - 1).getSectPr();
    // There is always a section wrapper, but it might not contain a sectPr
    if (sectionProperties == null) {
        sectionProperties = factory.createSectPr();
        wordMLPackage.getMainDocumentPart().addObject(sectionProperties);
        sections.get(sections.size() - 1).setSectPr(sectionProperties);
    }

    /*
     * Remove Header if it already exists.
     */
    List<CTRel> relations = sectionProperties.getEGHdrFtrReferences();
    Iterator<CTRel> relationsItr = relations.iterator();
    while (relationsItr.hasNext()) {
        CTRel relation = relationsItr.next();
        if (relation instanceof HeaderReference) {
            relationsItr.remove();
        }
    }

    HeaderReference headerReference = factory.createHeaderReference();
    headerReference.setId(relationship.getId());
    headerReference.setType(HdrFtrRef.DEFAULT);
    sectionProperties.getEGHdrFtrReferences().add(headerReference);
    HeaderReference firstPageHeaderRef = factory.createHeaderReference();
    firstPageHeaderRef.setId(relationship.getId());
    firstPageHeaderRef.setType(HdrFtrRef.FIRST);
    sectionProperties.getEGHdrFtrReferences().add(firstPageHeaderRef);
     }

0 个答案:

没有答案