java - 如何使用 docx4j 从 docx 获取页眉/页脚

标签 java docx docx4j

我正在尝试从 Word 文档中获取页眉页脚并将其附加到 StringBuilder 。我遇到过一些类似的问题,这些问题让我看到了下面的代码片段:

    StringBuilder sb = new StringBuilder()
    RelationshipsPart rp = documentPart.getRelationshipsPart();
    for ( Relationship r : rp.getJaxbElement().getRelationship()  ) {
        if (r.getType().equals(Namespaces.HEADER)|| r.getType().equals(Namespaces.FOOTER)) {
            println ("Entered inside header / footer")
            //How do I append the values to sb??
        }
    }

我的 DOCx 中的页眉/页脚的 XML 如下所示:

   <w:p w:rsidR="00AA4A9B" w:rsidP="00AA4A9B" w:rsidRDefault="00AA4A9B" w14:paraId="76FE289B" w14:textId="0EA049BC">
        <w:pPr>
            <w:pStyle w:val="Header"/>
            <w:jc w:val="center"/>
        </w:pPr>
        <w:r>
            <w:t>SOME TEXT HERE</w:t>
        </w:r>
        <w:r w:rsidR="000671A8">
            <w:t xml:space="preserve"> </w:t>
        </w:r>
        <w:bookmarkStart w:name="_GoBack" w:id="0"/>
        <w:bookmarkEnd w:id="0"/>
        <w:r>
            <w:t>SOME MORE TEXT HERE</w:t>
        </w:r>
    </w:p>

问题

如何获取 <w:t> 中的值进入 StringBuilder?

最佳答案

最简单的是使用 TextUtils.getText: https://github.com/plutext/docx4j/blob/master/src/main/java/org/docx4j/TextUtils.java#L55

类似于:

  HeaderPart hp = rp.getPart(r);
  String headerText = TextUtils.getText(hp.getContents());

请注意,还有 https://github.com/plutext/docx4j/blob/master/src/samples/docx4j/org/docx4j/samples/HeaderFooterList.java用于对页眉和页 footer 分进行更高级别的访问。

关于java - 如何使用 docx4j 从 docx 获取页眉/页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54282763/

相关文章:

pdf - Word Automation Service 断开目录中的链接

java - Docx4J 表字体类型被忽略

python - 使用 python-docx 迭代数据帧中的值以打印到 Word

java - 使用 Apache POI 从 docx 文件读取表

java - 使用docx4j将图像添加到word文档

java - docx4j - 从 xml 文件加载部分

java - "Autowire"部署spring模块化应用到tomcat后失败

java - 使用 Java 进行 LDAP 身份验证,需要解释

java - 使用 GeoFire 和 Firebase 将用户位置添加到实时 map

java - 签名算法的算法约束检查失败 : MD5withRSA