我无法使用 java 更新 word 文档中自定义属性的值。
我有一个 word 文档,其中包含一个值为“stack”的自定义属性。使用 java 我想将该值更改为“溢出”。我使用了两种方法。
1) 使用 Apache POI
我在 org.apache.poi.hpsf.DocumentSummaryInformation 中设置了 org.apache.poi.hpsf.CustomProperties 并将其写入 POIFSFileSystem。
它确实更新了 word 的 customproperties 表中的值。但不会更新文档中相应属性的值。打开文档后,我需要手动刷新文档以更新该值。
2) 逐字符解析文档,并使用域代码 DC3、DC4 和 NAK 来识别自定义属性的位置。用新值替换现有值。
现在生成的文档包含新值。但这里的问题是,如果旧值和新值的长度不同,文档就会损坏。我确保逻辑足够好。
任何帮助,将不胜感激。