0

我正在尝试使用 POI 3.8 查找和替换 docx 文件中的文本段落,如此处所述

如果我在第一次运行时插入标签,那效果很好。但是,一旦我重新打开 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。但这些碎片仍然存在......

任何帮助都非常感谢 - 在此先感谢您的帮助!

4

1 回答 1

3

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

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

于 2012-11-20T20:36:59.753 回答