我只是为一组用户编写了一个小脚本,该脚本将所有 PDF 和 DOC* 文件收集在一个目录中,并解析它们以获取超链接。PDF 部分按预期工作,但是我为设计(纯文本)提供的 Word 文档与他们使用的实际 Word 文档(文本位于 TextBox 元素中)之间存在差异。
我注意到,当我尝试从这些新文件中收集句子/单词时,我收到的只是文件背景图像的文本(通常是特殊字符)。
我浏览了 API 并尝试了 ole_methods 中列出的很多方法,但还没有找到访问 TextBox 以从中提取所需文本的方法。
我知道我可以将 Word 文件转换为 PDF 并以这种方式快捷(经过测试和验证),但这需要相当多的文件管理,我想避免使用更简单的解决方案:访问文本。
您可以使用绘制文本框功能 (Word 2007+) 复制文档中的元素。
有谁知道如何访问这个元素,或者更好地找到文档中的所有文本,而不管它位于哪个元素中?
require 'win32ole'
word = WIN32OLE.new('Word.Application')
doc = word.Documents.Open(file)
doc.Sentences.each { |x| puts x.text }
- 亚当