我在 .docx 文件中使用带有内容控件的 docx4j 2.8.1。我可以通过注入我自己的 XML 然后BindingHandler.applyBindings
在提供输入 XML 后调用来替换 CustomXML 部分。我可以在我的 XML 中添加一个标记,例如¶
我想替换 MainDocumentPart 中的那个标记,但是使用这种方法,当我用这个(链接)方法遍历 MainDocumentPart 中的内容时,我的 XML 中的任何文本都不是即使在从 MainDocumentPart 中提取的集合中。我在想,即使在绑定 XML 之后,它仍然与 MainDocumentPart 分开(??)
问问题
1708 次
1 回答
2
除了一个小测试文档之外,我还没有尝试过这个。我的令牌是 Pilcrow: ¶
。由于它是单个字符,因此不会在单独的运行中拆分。我的代码是:
private void injectXml (WordprocessingMLPackage wordMLPackage) throws JAXBException {
MainDocumentPart part = wordMLPackage.getMainDocumentPart();
String xml = XmlUtils.marshaltoString(part.getJaxbElement(), true);
xml = xml.replaceAll("¶", "</w:t><w:br/><w:t>");
Object obj = XmlUtils.unmarshalString(xml);
part.setJaxbElement((Document) obj);
}
pilcrow 字符来自 XML,并通过将 XML 绑定应用到内容控件来注入。问题是 XML 中的内容似乎不在 MainDocumentPart 中,因此替换不起作用。
(使用 docx4j 2.8.1)
于 2013-10-12T09:36:21.900 回答