PDF Readers
The Adobe Portable Document Format (PDF) is a popular (if strongly criticized) document format standard. One problem is the bald assertion of many sites providing material in PDF that "you must use Adobe Acrobat Reader" to access the material. This is simply untrue (however popular a misconception it might be — Google shows over 8,060,000 results for this term).
There are several applications you can use other than Adobe's own proprietary products for PDFs. This is meant to be a list of such alternatives.
Notes:
- URLs: for most GNU/Linux distributions, many of these tools are pre-installed or are installable via your distribution's packaging system. Try these first, using the URL source as a last resort.
- GUI: Does the application offer a GUI interface.
- Console: Does the application offer a console / text-only interface and output. Note that this may offer limited functionality, particularly for graphical or scanned-in PDF files (e.g.: fax TIFF images in PDF wrappers).
- Free Software: Licensed under terms recognized as FSF Free Software or OSI Open Source licenses.
- Notes: Additional information. Unless noted, all applications do offer text search, hyperlinks, thumbnail contents, and password-protected PDFs.
The usual "old reliables" are xpdf and gv, though users of GNOME or KDE might prefer project-oriented PDF viewers (Evince, Okular, Atril).
Readers
Program | Platform | GUI | Console (text-only)? | Free Software? | Notes |
xpdf | Unix, Win w/X11 | Yes | Yes | Yes | An open source GUI viewer for Portable Document Format (PDF) files. Requires: lesstif2, libpoppler. |
Evince | Unix, Win w/X11 | Yes | No | Yes | GNOME viewer for PDF, PostScript, Encapsulated PostScript, DJVU, and DVI files. Supports searching for text, copying text to the clipboard, hypertext navigation, and table-of-contents bookmarks. Requires: gconf2, gnome-icon-theme, libatk1.0, libcairo2, libdbus, libdjvulibre21, libevince3, libfontconfig1, libfreetype6, libgail18, libgtk-pixbuf2.0, libglade2, libglib2.0, libgnome-keyring0, libgtk2.0, libice6, libnautilus-extension1, libpango1.0, libpoppler-glib4, libsm6, libspectre1, libtiff4, libxml2, shared-mime-info, zlib1g. |
Okular | Unix, Win w/X11 | Yes | No | Yes | KDE 4.x PDF viewer, based on xpdf, bundled into the kdegraphics collection. Requires: libkdecore5, libkdeui5, libkio5, libkparts4, libjpeg8, libfreetype6, libkprintutils4, libkpty4, libkutils4, libokularcore1, libphonon4, libpoppler-qt4, libqca2, libqimageblitz4, libqt4, libqtcore4, libqt4-svg, libtq4-dbus, libqt4-xml, libqtgui4, libspectre1, libstreamanalyzer0, phonon, zlib1g |
Atril | Unix | Yes | No | Yes | MATE Desktop PDF viewer, forked from Evince. Able to display PDF, PS, EPS, DJVU, DVI, and XFS files. Supports searching for text, copying text to the clipboard, hypertext navigation, and table-of-contents bookmarks. Requires: MATE Platform libraries, Poppler, Ghostscript. Optional: DjVuLibre for DjVu viewing, RAR for viewing CBR comics, libgxps for XPS documents. |
ePDFView | Unix, Win w/X11 | Yes | No | Yes | Simple and lightweight PDF viewer, using only the GTK 2 and Poppler libraries. Opens most PDF files (even encrypted), save copies of documents, and has support for printing using CUPS. Originally developed by Emma-Soft, then orphaned and forked by Pedro A. Aranda Gutiérrez. Requires: GTK version between 2.6.0 and 2.95.0, Poppler version 0.5.0 with glib bindings. |
MuPDF | Unix, Win, Android | Yes | Yes | Yes | Lightweight PDF, XPS, and E-book viewer. Supports PDF, XPS, OpenXPS, CBZ, EPUB, and FictionBook 2. Supports PDF document annotation. Mobile version supports PDF forms (support coming to desktop versions). Copies command-line tools supporting annotation, editing, converting documents to HTML, SVG, PDF, CBZ, etc. No requirements (except that the more-sophisticated of the two viewers requires OpenGL for rendering). Written in portable C with some optional features in Javascript and Java. |
qpdfview | Unix, Win w/X11 | Yes | No | Yes | Tabbed document viewer for Qt by Adam Reichold, coded in C++. Requirements: Poppler for PDF support, libspectre for PS support, DjVuLibre for DjVu support, CUPS for printing support and the Qt toolkit. |
PDF.js | Unix, Win, OSX, others | Yes | No | Yes | PDF.js is the built-in PDF viewer for Firefox (v19 and later), built with Node.js and HTML5. It can of course be used elsewhere, e.g., it's widely used as an extension in the Google Chrome / Chromium Web browsers. |
PyPDF2 | Unix, Win, OSX, others | No | Yes | Yes | Python's PyPDF2 module can read text content from PDFs, craft new PDFs from existing documents, decrypt PDFs, combine/merge multiple PDFs, cut unwanted pages, reorder pages, rotate pages, overlay pages onto other pages, encrypt PDFs, etc. |
GNU gv | Unix | Yes | No | Yes | Ghostscript-based viewer for X11. Far better paging than most of the PDF-specific viewers, but lacks search, hyperlink, and thumbnail features. Based on Timothy O. Theisen's Ghostview, and a further development of Johannes Plass's initial gv implementation. |
Ghostscript, ghostview, GSview | Unix, Win | Yes | No | Yes/No (GPL and AFPL) | These are an interpreter and two viewers. Specifically supporting legacy MS Windows in native versions. |
Gpdf | Unix | Yes | No | Yes | GNOME PDF viewer, based on xpdf. EOLed in 2005, when it was rewritten and re-released as Evince. Old (deprecated). |
KPDF | Unix | Yes | No | Yes | KDE 3.x PDF viewer, based on xpdf, bundled into the kdegraphics collection. Requires: kdelibs4, libfreetype6, libqt3, libxft2, libpaper1. |
kghostview | Unix | Yes | No | Yes | kghostview was a KDE 3.x (or Trinity Desktop) PDF viewer, based on Timothy O. Theisen's Ghostview, bundled into the kdegraphics collection (back in KDE3 days). Requires: kdelibs4, ghostscript, libqt3. Seems to have been long-ago orphaned. |
pdftotext (1,2) | Unix, Win | No | Yes | Yes | A command-line utility to extract ASCII plaintext from PDF files. There are two implementations of pdftotext. The older one is part of xpdf. This is being widely replaced by the newer (re)implementation, part of the Poppler project suite (often packaged as poppler-utils). Full text search (through your pager), no hypertext or thumbnails. |
Vindaloo | Unix | Yes | No | Yes | Vindaloo is a PDF viewer for GNUstep. |
ViewPDF | Unix, Win w/X11 | Yes | No | Yes | ViewPDF was a PDF viewer for GNUstep. Controls and operation were awkward. It was replaced by Vindaloo. |
GGv | Unix | Yes | No | Yes | GNOME Ghostview (GGv, gnome-gv) was a PDF/PostScript document viewer with hooks to gconf, bonobo, Nautilus, etc. It was developed as a GNU package, and has long been decomissioned. |
Foxit Reader | Unix, Win, OSX, others | Yes | No | No | Proprietary PDF reader with support for navigation, bookmarks, etc. |
Adobe Acrobat Reader | Unix, Win, OSX | Yes | No | No | Proprietary PDF reader with support for navigation, bookmarks, etc. Has a built-in JavaScript interpreter (which can be disabled in program preferences). |
As for why you'd care for one of alternatives to Adobe's own offering, there are three general reasons:
- The free versions tend to be more up-to-date, bug-free, and better fits for specific environments (CLI, KDE, GNOME, WindowMaker / GNUstep) than Adobe's ancient Motif-based interface.
- Remember Dmitry!. Adobe is the company which jailed and persecuted a programmer for nearly a year, before dropping all charges, largely for providing solid evidence of the poor quality of Adobe's own encryption solutions. Of course, DRM (digital restrictions management) is a whole 'nuther ball of worms.
- Spyware. Adobe has a record of abusing its software packages, including Acrobat Reader, to spy on users.
[RM comments: It's worth also reading LWN.net's 2004 "Grumpy Editor's Guide to PDF Viewers", http://lwn.net/Articles/113094/, and also http://www.pdfconverter.com/resources/using-pdf-in-linux#C2.]