Как я могу получить разметку простого текста, отформатированную с помощью pdftotext?

Я использую pdftotext для извлечения простого содержимого из файлов PDF.

Но результат не имеет формата (например, абзацы, списки и т. д.). Как можно извлечь простой текст из PDF-файлов с помощью pdftotext и получить результат, отформатированный в разметке?

На самом деле я пытаюсь это:

pdftotext -layout -enc UTF-8

есть ли другой способ сделать это?


person Mikel David Carozzi Sanchez    schedule 09.07.2014    source источник
comment
Файлы PDF не содержат абзацев, списков и т. д. если только они не были специально помечены соответствующей разметкой. Если PDF-файл не помечен тегами, каждая утилита (вплоть до собственного Acrobat Reader от Adobe, пробного камня для программного обеспечения для обработки PDF) может только предположить, что такое абзац или список.   -  person Jongware    schedule 09.07.2014
comment
Спасибо за разъяснения!...   -  person Mikel David Carozzi Sanchez    schedule 10.07.2014


Ответы (1)


То, что вы хотите сделать, невозможно с pdftotext.

Результат, который возвращается pdftotext -layout, является лучшим, который вы можете получить.

Markdown (или иным образом отформатированный) вывод текста в настоящее время невозможен.

Однако могут быть некоторые разработки в других областях (например, pdf.js), которые могут привести к тому же результату в будущем...

Это «форматирование», однако, каким-то образом будет отражать только визуальный вид страниц PDF и не будет соответствовать какой-либо структурной информации документа (сообщая, что такое «заголовок», что такое «список», что такое «абзац»).

То, что @jongware написал в своем комментарии, полностью верно:

Файлы PDF не содержат «абзацев, списков и т. д.». если только он не был специально помечен соответствующей разметкой. Если PDF-файл не помечен, любая утилита (вплоть до собственного Acrobat Reader от Adobe, пробного камня для программного обеспечения для обработки PDF) может только догадываться, что такое «абзац» или «список».

person Kurt Pfeifle    schedule 13.01.2015