Как найти координату слова с помощью CGPDFScanner на странице PDF в iphone? - PullRequest
0 голосов
/ 17 февраля 2012

Я делаю разбор страницы PDF с использованием CGPDFScanner. Но я не могу найти совпадение результатов поиска.

В void Tm1 (сканер CGPDFScannerRef, void * info) я получаю только координаты для некоторого слова, но не для каждого слова в PDF.

Как я могу найти соотношения, например, (x, y) каждого слова страницы PDF?

1 Ответ

1 голос
/ 12 января 2013

Вы значительно недооцениваете сложность преобразования PDF в текст.Я тоже допустил эту ошибку, и потребовались месяцы, чтобы написать механизм извлечения текста, который работает с большинством PDF-файлов.Мой код является коммерческим, но просто чтобы дать вам представление:

Td, TD, Tm, T *, d0, d1 могут содержать текст.(d0, d1 для шрифтов Type3, которые встречаются реже, но Microsoft Word действительно их любит). Поэтому можно делать любые объекты в XObjects (также рекурсивно).Но вам также необходимо проанализировать шрифты, поскольку многие PDF-файлы имеют CMaps, прикрепленные к шрифтам, которые переводят «случайные числа» в символ (или символы - PDF также может иметь лигатуры).Осторожно, XObjects также могут содержать шрифты, и очень важно разобрать их в правильном порядке, поскольку у шрифтов могут быть родительские шрифты.

Adobe ToUnicode PDF дает представление о том, как начать, нопросто предупреждение, спецификация очень неполная.В официальном справочнике PDF есть еще кое-что, но вы все равно найдете документы, которые не должны работать (если смотреть на спецификацию), но все же работают (когда вы пробуете их в Adobe Acrobat).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...