Word vsto获取带有隐藏字符的文档文本

时间:2019-05-09 12:17:08

标签: c# ms-word vsto

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

Globals.ThisAddin.Apllication.ActiveDocument.Content.Text

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

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

有没有办法解决该问题或如何获得带有隐藏字符的文本?

我找到了TextRetrievalMode,但是我无法使用它。

1 个答案:

答案 0 :(得分:1)

基本上,答案是“不,您不能按照建议的方式来做。”

是的,Word确实向文本流添加了“隐藏字符”,这些文本流无法使用对象模型来拾取。尝试使用字符索引值将无法可靠地工作。可靠的方法是Word内置的带有通配符的“查找/替换”。如果绝对需要RegEx,则在字符索引范围内进行某种查找/替换(例如,使用RegEx计算的索引前5个字符开始,后5个字符后结束)可能是一种再次检查结果并提取的方法正确的范围。

可能的是,取决于进行哪种分析,最好使用Office Open XML处理关闭的文件。这样就不会出现Word用于结构信息的“隐藏字符”问题。另一方面,有很多格式化信息会破坏文本运行,需要与之抗衡...