Это, к сожалению, невозможно.
По крайней мере, не без какой-либо важной работы с вашей стороны. И это, конечно же, невозможно в общем для всех PDF-файлов.
PDF-файлы (как правило) улицы с односторонним движением.
Они были созданы для отображения текста одинаково в каждой системе без каких-либо различий, а для принтеров печатать документ без необходимости знать все шрифты и прочее.
Извлечение текста является нетривиальным и возможно только для некоторых PDF-файлов, где основное изображение-pdf сопровождается текстом (который ему не нужно). Вся текстовая информация, представленная в PDF, связана с информацией о местоположении, чтобы определить, где она должна отображаться.
Если у вас есть таблица, показанная в PDF, где в левом столбце указаны имена записей, а правая строка содержит его содержимое, обе эти столбцы могут быть представлены как совершенно разные блоки текста, которые отображаются только имеют некоторую связь друг с другом из-за их размещения рядом друг с другом.
Что должно сделать каркас/ваш код, так это определить, какие части текста, которые визуально связаны, также логически связаны и принадлежат друг другу. Это еще не возможно. Причина, по которой вы и я можем читать, понимать и группировать PDF, - это то, что в некоторых областях наш мозг по-прежнему намного лучше, чем компьютеры.
Заключительное примечание, потому что это может вызвать путаницу: возможно, что Adobe и Apple также выполняют некоторые из этих группировок и добиваются хорошего результата, но это все еще не идеально. PDF, который я только что протестировал, был довольно искажен после извлечения текста через Mac Preview.
Не удалось найти 'string()' для 'pdf' экземпляра? Не прошло? – Hemang