2010-08-25 5 views
51

Эй, довольно давно, я ищу программу просмотра PDF для командной строки.CLI pdf viewer для linux

Как мне нравится работать без X на Linux и часто работать на удаленной машине, мне бы хотелось иметь инструмент для чтения pdf-файлов. Есть довольно много действительно хороших графических программ (evince, okular, acroread, ...), чтобы выполнить эту работу, поэтому я решил, что должен быть хотя бы один достойный инструмент текстового режима. Но я даже не знаю, дерьмовый!

В настоящее время я либо запускаю X только для чтения pdf-файлов, либо для использования pdftohtml + lynx. Однако последнее не дает очень хорошего результата, и большинство документов просто нечитаемы, особенно если они содержат математическую формулу.

В Google полно людей, которые говорят, что это невозможно или предлагается версия pdftohtml.

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

Спасибо за любые предложения.

+0

Как это будет обрабатывать файлы PDF которые построены из источника изображения (без текста), который waaaayyy слишком распространен? –

+0

Некоторые PDF-файлы преобразуются в плохой текст !, либо просто формы, либо вывод OCR, который скрыт над исходным изображением только для выбора. Который никогда не может быть преобразован в хороший текст! Как вы, по-вашему, должны быть обработаны? –

+0

@ 0xA3: ну, есть библиотеки, способные отображать графику на консоль - libcaca и aalib. Можно даже посмотреть фильмы в искусстве ascii. Однако не слышал о просмотре в формате pdf. Кроме того, можно рендерить изображения в фреймбуфер с помощью svgalib. Однако не слышал о просмотре CLI pdf. Очевидно, это можно сделать, но я не уверен, что кто-то действительно потрудился сделать это. О, и с libcaca/aalib «графический» pdf будет едва читаемым. – SigTerm

ответ

63

Привет Я думаю, что вам не нужно написать программу для ваших целей я имею в виду чтения pdf-файл в консольном режиме, так как команда «меньше» уже делает это для вас. Так что используйте его и наслаждайтесь им.

меньше "имя PDF-файла"

+0

Отличный первый ответ! – bitmask

+7

Аккуратный трюк! На archlinux мне пришлось установить 'lesspipe' для этого, чтобы работать, другие настройки могут быть установлены по умолчанию. +1 – Giacomo

+3

не является бинарным форматом pdf?Текст, созданный 'less', должен быть искажен – akhyar

0

Это будет работать, только если ваш документ PDF структурирован, то есть это документ tagged PDF.

Это требуется для получения правильного порядка чтения текстовых объектов в документе.

Отмеченные документы в формате PDF также позволяют повторно документировать документ, хотя я не знаю о каком-либо инструменте, который делает это с выходом командной строки.

13

Хорошо, вы попросили узнать даже «дрянные». Вот два (решайте сами об их соответствующих crappiness):

Первое: Ghostscript'stxtwrite устройство вывода

gs \ 
    -dBATCH \ 
    -dNOPAUSE \ 
    -sDEVICE=txtwrite \ 
    -sOutputFile=- \ 
    /path/to/your/pdf 

Второе: XPDF'spdftotext CLI утилита (лучше, чем Ghostscript):

pdftotext \ 
    -f 13 \ 
    -l 17 \ 
    -layout \ 
    -opw supersecret \ 
    -upw secret \ 
    -eol unix \ 
    -nopgbrk \ 
    /path/to/your/pdf 
    - |less 

Это отобразит диапазон страниц 13 (f рвых страницы) до 17 (л астов страницы), сохранить расположение защищенного двойной пароля с именем файла PDF (с помощью пользователей и владельцев паролей секрета и supersecret), с Unix EOL конвенцией, но без вставки pagebreaks между страницами PDF, пропущенных через меньше ...

pdftotext -h отображает все доступные варианты командной строки.

Конечно, оба инструмента работают только для текстовых частей PDF-файлов (если они есть). О, и математическая формула не будет работать слишком хорошо ... ;-)


Edit: я был неправильно набрали команду выше (первоначально используя pdftops вместо pdftotext).

+0

Ни один из них не работает для моей системы, я попытался настроить аргументы, но не отобразил текст, но ps, и поскольку я не являюсь принтером ... – bitmask

+0

D'oh! Я неверно набрал команду. Используйте 'pdftotext' вместо' pdftops' ... (я отредактирую ответ, чтобы отразить эту коррекцию). –

+0

Аналогично, 'pdftohtml' создает копию HTML, которую можно просматривать с помощью текстового режима, например,' w3m' или 'links'. – Abbafei

5
+0

Это потрясающе! Хотя вы должны быть root, чего я не понимаю, но все в порядке. Все еще потрясающе. – bitmask

+0

Проверьте разрешения устройства фреймбуфера: '$ ls -l/dev/fb0 crw-rw ---- 1 root video ...'. Возможно, вам придется находиться в группе «video», чтобы получить доступ к фреймбуферу. – Giacomo

3

fbpdf - просмотрщик фреймбуфера pdf.

Существует также вилка, jfbpdf, но на данный момент я не могу заставить ее работать.

4

Кстати, им всегда в одной и той же ситуации, и я использую MC (Midnight Commander), который обрабатывает текст в формате PDF очень хорошо ... Просто просмотреть файл (F3) в тс