java - 如何使用 docx4j 从 docx 获取 HEADER / FOOTER
问题描述
我正在尝试从 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用于对页眉和页脚部分进行更高级别的访问。
推荐阅读
- javascript - 如何将 PDF 嵌入 Firefox 的 html 页面的一部分
- vue.js - Vuetify 与 3rd 方表单组件 - 如何像 v-text-field 一样设置样式
- ruby-on-rails - 无法通过 Bundler 安装 gem。偏僻的: !偏僻的: !Push 被拒绝,无法编译 Ruby 应用程序。远程:远程:!推送失败
- javascript - 通过循环构建 JSON 数组
- python - Python:生成绝对路径
- git - (合并后)在拉取请求中未看到的更改在提交中看到
- macos - IOUSBInterfaceOpen 失败,但我可以通过卸下相机让它工作......这是怎么回事?
- jscript - 如何为 Summernote 的插入图像对话框设置图像扩展名
- python - 在 python 中迭代列表时扩展新列表中的元素
- c# - 使用 C# 请求 AWS EC2 SpotInstance 失败,参数 groupId 的 Value () is invalid