如何解压缩docx文件以便与Apache POI 3.8一起使用?

时间:2012-11-15 18:39:00

标签: java ms-word apache-poi defragmentation

我正在努力找到&使用POI 3.8替换docx文件中的文本段落,如here所述。

如果我在第一次运行时插入我的标签,那就可以了。但是,一旦我重新打开docx文件并进行一些修改,Word实际上会对文本的运行进行分段。例如,“hello world”可能是:

<w:r><w:t>Hello wo</w:t></w:r><w:r w:rsidR="00FB0672"><w:t>rld</w:t></w:r>

这种碎片化的原因在于我认为更改跟踪,格式化和拼写检查等。

有人知道如何......

a)...在MS Word中禁用此功能?

b)......之后以某种方式解压缩了docx文件?

c)......摆脱这种碎片的任何其他解决方案?

我已经尝试将文件另存为.doc / .odt并将文件重新保存为.docx。但这些碎片仍然存在......

任何帮助都非常感谢 - 提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

在Word中,您想要和可以关闭的功能是拼写和语法检查以及rsid插入。

这是针对docx4j(我管理的一个项目),而不是POI,但是VariablePrepare显示了如果你无法在Word中阻止它,需要做什么来解除片段。由于POI使用类似的XML编组/解组合方法(尽管是XML Beans,而不是JAXB),因此您应该能够将该代码转换为使用POI API。