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