0

我正在使用 docx4j 来读取 word 文档的内容。

core.xml 有一个description标签,我想在我正在阅读的文档中修改它。

最好的方法是什么?我是否必须阅读文档的全部内容并使用 docx4j 创建一个新文档并更改description标签,或者有​​没有办法只更改description标签而不修改和/或阅读->复制文档的内容?

4

1 回答 1

0

有关如何获取核心道具部分的信息,请参阅第 64 行的示例DocProps.java 。

然后它是这样的:

    JAXBElement<SimpleLiteral> desc = coreProps.getDescription();
    SimpleLiteral literal = XmlUtils.unwrap(desc);
    List<String> contents = literal.getContent();

然后修改该列表。与 JAXB 一样,它是一个实时列表,因此您将立即对文档的 in-mem 表示进行更改。

或者您可以创建一个新的 JAXBElement<SimpleLiteral> desc2,然后是 coreProps.setDescription(desc2)。这就是你对没有 dc:description 的 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。上面链接的示例就是这样做的。

于 2013-07-19T21:46:31.527 回答