c# - Word vsto 获取带有隐藏字符的文档文本
问题描述
我正在为 Word 开发文本分析 vsto 加载项。因此,我得到这样的活动文档的文本:
Globals.ThisAddin.Apllication.ActiveDocument.Content.Text
之后我分析一下。分析返回 Word 应注释的位置列表(如字符 3 - 6 和字符 10 - 13)。
问题在于,从 3 到 6 的评论似乎在文档中添加了一个字符(即隐藏的)。因为 Word 在第一个注释之后所做的所有注释都太早放置了一个字符。
有没有办法解决这个问题,或者我如何获得带有隐藏字符的文本?
我发现TextRetrievalMode
但我无法让它与它一起工作。
解决方案
基本上,答案是“不,你不能按照你提议的方式去做”。
是的,Word 确实将“隐藏字符”添加到无法使用对象模型拾取的文本流中。尝试使用字符索引值不会可靠地工作。可靠的方法是 Word 的内置查找/替换通配符。如果 RegEx 是绝对必要的,那么在字符索引范围内的某种查找/替换(例如,在使用 RegEx 计算的索引之前开始 5 个字符并在索引之后结束 5 个字符)可能是一种仔细检查结果并获取的方法正确的范围。
可能,根据这是哪种分析,使用关闭的文件可能会更好,利用 Office Open XML。这样就不会有 Word 用于结构信息的“隐藏字符”问题。另一方面,有很多格式信息会破坏需要处理的文本运行......
推荐阅读
- cordova - 尝试在 Cordova InAppBrowser 中打开 PDF 时出现“加载错误”
- ios - 编码非拉丁字符串并将其转换为 UnsafeMutablePointer 的正确过程是什么
? - android - Move only a button when android soft keyboard is displayed
- google-apps-script - How do I create profile pictures on website from Google Sites?
- c++ - Creating a class in c++ that is accessible by its members
- c# - 如何以编程方式显示 AxMsRdpClient9NotSafeForScripting 对象?
- python - Pythons win32gui 模块:查找所有窗口
- c++ - 如何通过 std::apply 调用具有定义的第一个参数的可变参数模板函数?
- html - 更改 Bootstrap 中的行高
- reactjs - React Native Auth0 中的 Web 身份验证是什么?