17

Is it possible to view pdf documents without having gdm (or similar) running?

Rationale: I'm working on a remote server (assume no X forwarding) processing some data, creating some plots (assume pdf files). And I would like to view them without having to scp and open them on my machine. (There may be other use cases, probably.)

4
  • 2
    I don't know the answer to the question you asked, but I use sshfs to solve problems like these. I suppose it's like using scp, but requires less hassle.
    – ams
    Commented Apr 11, 2012 at 9:01
  • @ams, this would indeed solve the copying issue, but right now I'm particularly interested in a command-line only pdf viewer.
    – moooeeeep
    Commented Apr 11, 2012 at 9:05
  • Maybe you could adept bcvi in a way that executing view-this file.pdf over SSH runs your local PDF viewer on the file.pdf via back-channel magic.
    – sr_
    Commented Apr 11, 2012 at 9:36
  • You can generate ascii graphs with gnuplot, i.e. echo 'set term dumb; plot sin(x)' | gnuplot. For improved "graphics" generate tektronix escape sequences, e.g. within xterm -t run echo 'set term tek40xx; plot sin(x)' | gnuplot
    – Thor
    Commented Apr 13, 2012 at 10:50

4 Answers 4

29

Not a real viewer, but as first aid a converter may also help:

pdftotext file.pdf - | less

pdftohtml -stdout -i file.pdf | lynx -stdin

pdftotext and pdftohtml are part of the Poppler package.

2
  • 2
    +1 This works nicely with text-only documents. Obviously displaying graphics without graphical user interface is not realistic? :]
    – moooeeeep
    Commented Apr 11, 2012 at 11:06
  • 2
    +1. Also, lesspipe knows how to handle PDF documents. If pdftotext is installed and you have already run eval $(lesspipe), you can just run less file.pdf. It uses pdftotext -layout so works reasonably well with multi-column text.
    – cas
    Commented Jan 4, 2018 at 4:28
6

I don't think it will work remotely, but locally I used to use fbgs (Info about fbida). It converts the PDF pages to TIFF files and displays them in a contiguous fashion using the framebuffer. Including images and proper layout. However, it's slower then using a GUI viewer.

1
  • Thanks for this note (it's spelled fbgs)! It looked indeed promising. Unfortunately the restriction is not in the first place locally, but any emulated terminal won't work. Apparantly it requires to be run on any of the virtual terminals ctrl+alt+f1/f2/f3/... :(
    – moooeeeep
    Commented May 14, 2012 at 11:09
2

If you run emacs on your machine (emacs comes preinstalled on Ubuntu 18.04), you can virtually open and see a pdf on a remote server by hitting Ctrl-x Ctrl-f (to find-file) and then type in /user@hostname:/path/to/my.pdf and hit Enter (note the very first /). You will then be prompted to enter the server's password and there it is! You can see the pdf inside emacs.

Navigate through PDF inside emacs

Use space to go one page down and backspace to go one page up. You can also use arrow keys to scroll through a single page if it doesn't fit in the screen.

Zoom

Zoom in by hitting Ctrl-x Ctrl-+. Zoom in more by hitting + only. Or zoom out more by hitting -.

Context

Yes, you can connect to a remote server from within emacs using the built-in package tramp that works as simple as I explained above. This method works, not only for pdf, but for any other type of file, such as images.

2
  • Quality is miserable, emacs doesn't seem to re-render with higher resolution when zooming. That said, which PDF rendering engine does it use under the hood?
    – mara004
    Commented Feb 24 at 15:12
  • 1
    @mara004 I think you are right about quality, but other options are rare if not nonexistent. No clue about the underlying PDF rendering engine in emacs. Gotta look at the documentation or the source code!
    – Pooya
    Commented Mar 10 at 12:01
0

I use ranger, although it doesn't allow me to copy text or highlight.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .