Во-первых, вы должны понять, что такое PDF. PDF-файлы предназначены для имитации печатной страницы и предназначены только для формата вывода, а не для формата ввода. PDF - это, в основном, карта, содержащая точное расположение символов (отдельных букв или знаков препинания и т. д.) или изображений. В большинстве случаев PDF-файл даже не хранит информацию о том, где заканчивается одно слово и начинается другое, причем гораздо меньше таких вещей, как мягкие разрывы или жесткие разрывы для окончаний абзаца.
(Несколько последних PDF-файлов действительно хранят некоторую информацию об этом материале, но это новая технология, и вам посчастливится найти такие PDF-файлы. Даже если вы это сделаете, программа просмотра PDF может об этом не знать.)
В любом случае, ваше программное обеспечение должно реализовать какой-то "искусственный интеллект" для извлечения просто из местоположений отдельных персонажей, что такое слово, что такое абзац и так далее. Разное программное обеспечение будет делать это лучше, чем другие, и это также будет зависеть от того, как был создан PDF. В любом случае, вы никогда не должны ожидать идеальных результатов. Наличие выходного PDF не совпадает с исходным документом. Гораздо лучше попытаться получить это, если вы можете.
Стандартное решение вашей проблемы - использовать Adobe Acrobat Professional (дорогой, а не бесплатный ридер) для преобразования PDF в HTML. Даже это не даст идеальных результатов.
Существует бесплатное программное обеспечение, которое можно использовать для извлечения текста из PDF-файлов с некоторым сохранением форматирования, но опять же, не ожидайте отличных результатов. См., Например, калибр (который может быть преобразован в формат RTF), pdftohtml/pdfreflow или текстовый процессор AbiWord (со всеми включенными плагинами импорта / экспорта). Также есть плагин для импорта PDF для OpenOffice.
Но, пожалуйста, не ожидайте совершенства с любым из этих результатов. Вы идете против зерна здесь. PDF просто не подразумевается как редактируемый формат ввода.