首页 > 解决方案 > Word vsto 获取带有隐藏字符的文档文本

问题描述

我正在为 Word 开发文本分析 vsto 加载项。因此,我得到这样的活动文档的文本:

Globals.ThisAddin.Apllication.ActiveDocument.Content.Text

之后我分析一下。分析返回 Word 应注释的位置列表(如字符 3 - 6 和字符 10 - 13)。

问题在于,从 3 到 6 的评论似乎在文档中添加了一个字符(即隐藏的)。因为 Word 在第一个注释之后所做的所有注释都太早放置了一个字符。

有没有办法解决这个问题,或者我如何获得带有隐藏字符的文本?

我发现TextRetrievalMode但我无法让它与它一起工作。

标签: c#ms-wordvsto

解决方案


基本上,答案是“不,你不能按照你提议的方式去做”。

是的,Word 确实将“隐藏字符”添加到无法使用对象模型拾取的文本流中。尝试使用字符索引值不会可靠地工作。可靠的方法是 Word 的内置查找/替换通配符。如果 RegEx 是绝对必要的,那么在字符索引范围内的某种查找/替换(例如,在使用 RegEx 计算的索引之前开始 5 个字符并在索引之后结束 5 个字符)可能是一种仔细检查结果并获取的方法正确的范围。

可能,根据这是哪种分析,使用关闭的文件可能会更好,利用 Office Open XML。这样就不会有 Word 用于结构信息的“隐藏字符”问题。另一方面,有很多格式信息会破坏需要处理的文本运行......


推荐阅读