November 28, 2006

A survey of Linux PDF viewers


Portable Document Format, designed in the early 1990s by Adobe Systems, is slowly replacing PostScript as the preferred format for saving and viewing generic documents. Early on, only Adobe supplied programs that enabled users to view PDF files. But since the format's specification is open, Adobe Reader (formerly "Adobe Acrobat Reader") is now only one among an increasing set of PDF viewers. Here's a guide to the best alternatives for Linux users.



PDF's progenitor PostScript is a page description language that was invented in 1982, also by Adobe. It is an interpreted language with postfix (RPN) notation and is thus very flexible. In contrast, PDF is a file format describing the position and nature of text and pictorial content (in raster or vector format), which makes it easier to parse and process. To learn more about the relationship of PostScript and PDF, see Adobe's explanation.

Adobe Reader

Adobe's own Adobe Reader was the first program written to display PDF files. It's a sibling to Adobe Acrobat, a commercial program that handles the creation and modification of PDF files.

Available since version 3 for Linux, Adobe Reader is the viewer that supports the format best. For example, it is the only Linux program that handles form fields (although you cannot save their content). Version 6 of the software did not feature a Linux port, inciting some disgruntled Linux users to scoff at the "Portable" portion of "PDF." In version 7, Adobe resumed development of the Linux port and changed the GUI toolkit for Adobe Reader from Motif to Gtk+ 2. Since version 6, Adobe Reader has also supported JavaScript, thus diminishing the gap with PostScript.

The installation file of 7.0.8, the current version, is a whopping 47MB, and it requires you to have the Gtk+ 2 libraries on your system (which need another 20MB). Adobe Reader's plugin architecture enables you to have special add-ons from Adobe and third parties, and it offers features out of the box that most or all other readers do not have, including support for digital signatures and a function that reads the textual content to you.

Adobe Reader is your only choice if you want to view PDFs in a Netscape, Mozilla, Firefox, or Opera browser window, since it comes with a Netscape 4-compatible plugin. But it is the heaviest among the programs featured in this comparison, and the lack of speed with which the browser plugin starts the application can impair your Web browsing experience. However, once started, Adobe Reader renders pages quickly. It doesn't cache page thumbnails, though, so when a thumbnail is occluded by other windows and then exposed again, it needs to be regenerated. Note that Adobe Reader's features might also be detrimental to your security.


The Xpdf package was the first third-party alternative to Adobe Reader for Linux systems. It appeared about three years after Reader. Xpdf's interface might be described as spartan, and it still relies on the Motif toolkit to render its appearance. It renders pages exceptionally fast, and allows you to zoom, rotate, and search documents. Printing an arbitrary range of pages is also supported, albeit only by piping PostScript to a program or file. Since it is designed to be lightweight, Xpdf is a good tool to use to quickly skim through a PDF file, or read through a file with only a few pages. Xpdf is the only viewer among this group that does not support page thumbnails, but it will display a textual outline if the document has one.

Xpdf's code was taken as the basis for the rendering engines of Evince, ePDFView, and KPDF, as we shall discuss in a moment. Since it wasn't written with code reuse in mind, the integration of the rendering engine into other programs was done by simply copying code. The maintenance problems resulting from this finally led to the separation and relocation of Xpdf's rendering engine into the Poppler library.


Evince is a GNOME program designed to provide a consistent interface for interaction with multiple document formats. It currently supports PDF, PostScript, DjVu, TIFF, and DVI.

If you took Xpdf, made it use the GNOME libraries for its interface, removed the buttons to navigate in 10-page increments, and added better print support, you'd have Evince. As a side effect, probably due to the usage of Gtk+, Evince takes a lot longer than Xpdf to render pages.

If you like the PDF part of Evince, but do not wish to install the GNOME libraries, ePDFView might be for you. However, in Evince, the pages of a document with some formulas and simple vector graphics in it display almost instantly, whereas ePDFView can take as long as a few seconds per page to process them.


The PDF viewer of the KDE project, KPDF, is the strongest competitor of Adobe Reader. It starts up faster, renders at least equally fast, and supports most of the features of Adobe Reader. It employs thumbnail caching, so rendering is only done once.

KPDF can be used as a standalone application, but it also runs as a Konqueror plugin. When viewing documents with the plugin, the Konqueror and KPDF interface elements are merged, as opposed to the Adobe Reader plugin in other browsers, where interface elements are duplicated, missing, or inoperative.

KPDF's text-to-speech engine and user-defined color adaptation enhance accessibility, and the "filter as you type" thumbnail search makes selecting relevant pages quick and easy. If your hands need rest and you don't want to listen to a computer voice, you may also use automatic scrolling mode to read your document. Since KPDF is a KDE application, it uses the excellent printing interface of the KDE desktop.

The KDE project has plans for providing a consistent interface to the popular document formats, called okular, but, unlike GNOME's similar Evince, it isn't ready for production use yet.


If you have a choice, I recommend using a combination of Xpdf and KPDF to view PDF files. I'd rather copy and paste a URL leading to a PDF document into Konqueror and use the KPDF browser plugin than wait for the Acrobat Reader plugin to stuff its megabytes into my memory. Of course, you can also just instruct your browser to open PDF files with your favorite viewer, thus removing the dependency on plugins. Okular looks promising for people who don't like the "keep it plain" philosophy of the GNOME project that shows in Evince. Also, check out DjVu if your content is mainly in raster format (this is especially true for scanned documents and photographs).

Click Here!