Я просто собрал небольшой сценарий для группы пользователей, который собирает все файлы 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 }