Как меньше отображать PDF?

52

Я пробовал несколько программ: pdftotext, pdf2txt.py, ... Все они могут извлекать текст из PDF-файлов, но хорошо справляется та, которая лучше справляется со своей задачей less: текст из PDF имеет правильную компоновку. Как меньше это делать? Используется ли какая-либо библиотека или встроенная обработка PDF?

Я спрашиваю, потому что я хотел бы использовать эту функциональность программно, без необходимости запускать меньше как внешнюю программу (я делаю Python).

Моя система:

» less --version
less 458 (GNU regular expressions)
Copyright (C) 1984-2012 Mark Nudelman

less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less

» uname -a
Linux polyphemus 3.13.0-53-generic #89-Ubuntu SMP Wed May 20 10:34:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
dangonfast
источник

Ответы:

63

Ваш дистрибутив, вероятно, использует популярный lesspipe.shскрипт. Проверьте LESSOPENпеременную среды.

Этот сценарий существует во многих вариациях. Я смотрю на версию Gentoo. В нем вы найдете следующую строку:

*.ps|*.pdf) ps2ascii "$1" || pstotext "$1" || pdftotext "$1" ;;

Это означает, что он попробует эти команды в указанном порядке. $1это имя файла.

Другая версия использует следующую команду:

pdftohtml -stdout "$t" | parsehtml -
Даниэль Б
источник
15
Спасибо, оказывается, он используетpdftotext -layout $1 -
dangonfast
@ jeckyll2hide Вы нашли объяснение лучших результатов с меньшими затратами?
vvy
@vvy Вероятно, -layoutпереключатель. ;)
Даниэль Б,