我正在使用docx4j来阅读word文档的内容。
core.xml有一个description
标签,我想在我正在阅读的文件中进行修改。
最好的方法是什么?我是否必须阅读文档的全部内容并使用docx4j创建新文档并更改description
标记,或者是否可以更改description
标记而无需修改和/或阅读 - &gt ;复制文件的内容?
答案 0 :(得分:0)
请参阅第64行的示例DocProps.java,了解如何获取核心道具部分。
然后就像:
JAXBElement<SimpleLiteral> desc = coreProps.getDescription();
SimpleLiteral literal = XmlUtils.unwrap(desc);
List<String> contents = literal.getContent();
然后修改该列表。与JAXB一样,它是一个实时列表,因此您的更改将立即显示在文档的内存中。
或者你可以创建一个新的JAXBElement&lt; SimpleLiteral&gt; desc2,然后是coreProps.setDescription(desc2)。这就是你为没有dc:描述的docx所做的事情:
org.docx4j.docProps.core.dc.elements.ObjectFactory dcFactory = new org.docx4j.docProps.core.dc.elements.ObjectFactory();
SimpleLiteral literal = dcFactory.createSimpleLiteral();
coreProps.setDescription(dcFactory.createDescription(literal));
List<String> contents = literal.getContent();
// populate contents ...
然后保存docx。上面链接的样本就是这样做的。