Посмотреть PDF-файл в терминале

50

Я хочу просматривать pdfфайлы непосредственно в нашем кластере, а не копировать их на мой локальный компьютер, а затем открывать их в средстве просмотра.

Как я могу просмотреть pdfфайл в моем терминале?

bioinformatician
источник
1
См. Также unix.stackexchange.com/questions/36201/…
Марко
2
Если вы подключаетесь к кластеру с помощью ssh, я рекомендую использовать SSHFS. Он обеспечивает общее решение всех проблем «Как сделать X с удаленными файлами».
Жиль "ТАК ... перестать быть злым"
Рендеринг PDF в
кадровый буфер

Ответы:

53

Во многих системах меньше использует lesspipe, которая может автоматически обрабатывать pdftotext. Поэтому вы можете сразу попробовать

 less file.pdf

который покажет выход pdftotextв less.

Яри ​​Лааманен
источник
26

Я думаю, что невозможно увидеть файл PDF в терминале, но вы можете проверить его содержимое, конвертировав файл PDF в текст. Вы можете сделать это как:

pdftotext a.pdf

Он создаст файл .txt, который вы можете прочитать в VIM.

Для варианта с Ubuntu этот бинарный файл доступен в следующем пакете.

Poppler-Utils

SHW
источник
4
Это есть возможность увидеть файл PDF в терминале, например , так: pdftotext -layout file.pdf - | less(это как по умолчанию в Ubuntu lesspipeскрипт делает это)
villapx
5

Когда я хочу «просмотреть PDF-файл в терминале», это означает, что я хочу увидеть несжатый PDF, я делаю:

pdftk in.pdf output out.pdf uncompress

Я всегда удивлялся, почему и то, less in.pdfи другое, и less out.pdfдаю мне только текстовые строки в PDF (и исключая только текстовые команды PDF, в которых я ожидал out.pdf).

Что ж, это происходит из-за того, что lesspipe предполагает, что я хочу, pdftotextчтобы меня запускали первыми, а поскольку здесь я этого не делаю, я должен специально отключить lesspipe, установив LESSOPENпеременную окружения в ноль ; это:

$ LESSOPEN="" less out.pdf

И, наконец, я могу просмотреть несжатый PDF-код, используя less

sdaau
источник
2

Еще одно решение ... Могу я порекомендовать вам древнюю утилиту mc.

MC(1)                       GNU Midnight Commander
mc - Visual shell for Unix-like systems.

mcразработан на основе текстового управления файлами, и у него есть опция ( F3ключ) «view», которая автоматически преобразует .pdfs в текст для просмотра без графического интерфейса. Код, который выполняет это преобразование, является частью самого mcсебя, поэтому он не требует преобразования другими утилитами. (Также имеется встроенная программа просмотра .html для WIW.)

Ричард Зонненфельд
источник
1

Я попробовал следующее с хорошими результатами:

pdftotext filname.pdf - | less
jmunsch
источник
0

Еще одно решение - использовать команду gnome-open

gnome-open youfile.pdf

При условии, что у вас есть логин на вашем сервере с опцией -X (ssh -X)

bioinformatician
источник
2
Как это просмотреть PDF-файл в терминале ?
CVn
Не на терминале, но может просматривать PDF-файл при выдаче команды с терминала.
биоинформатик
5
Хотя это правда, ФП специально просил использовать терминальный подход.
CVn
0

Если вы работаете emacsна своей машине ( emacsпоставляется с предустановленной Ubuntu 18.04), вы можете фактически открыть и просмотреть PDF-файл на удаленном сервере, нажав Ctrl-x Ctrl-f(to find-file), а затем введите /user@hostname:/path/to/my.pdfи нажмите Enter (обратите внимание на самое первое /). Затем вам будет предложено ввести пароль сервера, и вот оно! Вы можете увидеть PDF внутри Emacs.

Навигация по PDF внутри emacs

Используйте spaceдля перехода на одну страницу вниз и backspaceна одну страницу вверх. Вы также можете использовать клавиши со стрелками для прокрутки одной страницы, если она не помещается на экране.

Увеличить

Увеличьте, нажав Ctrl-x Ctrl-+. Увеличить больше, нажав +только. Или уменьшить масштаб, нажав -.

контекст

Да, вы можете подключиться к удаленному серверу изнутри, emacsиспользуя встроенный пакет, trampкоторый работает так же просто, как я объяснил выше. Этот метод работает не только для PDF, но и для любого другого типа файла, такого как изображения.

Pooya
источник