← Back to Open-Source PDF Software

Open-Source PDF Software Capable of Viewing PDFs

Display/view PDFs interactively (viewer/reader UI)

23 tools

Command Line

Xpdf

CliGui

PDF viewer plus command-line tools (pdftotext, pdftops, pdftoppm, pdftopng, pdftohtml, pdfinfo, pdfimages, pdffonts, pdfdetach) for viewing PDFs and converting them to text, PostScript, image, or HTML, plus metadata, image, font, and attachment extraction.

Command Line

MuPDF

CliGuiLibrary

Lightweight C library, viewer, and CLI toolset for PDF, XPS, and e-book formats: renders and extracts text/images/metadata/structured content; creates, splits, merges, and compresses PDFs; adds annotations (highlights, stamps, shapes); permanently redacts content; digitally signs documents; converts between PDF, SVG, PNG, HTML, and PostScript; and embeds into web pages/apps.

Command Line

Evince

Gui

GNOME's document viewer, built on Poppler for PDF (plus PostScript via Ghostscript, DjVu, DVI, multi-page TIFF, comic archives, and more): text/highlight annotations, text selection and copying (incl. from OCR'd scans), optional override of document print restrictions, integrated search, thumbnails, dual-page and full-screen/slideshow viewing. No form-filling support.

C

PdfiumViewer

Library

WinForms PDF viewer control built on Google's PDFium, providing PdfDocument (document access), PdfRenderer (rendering with zoom/scroll), and PdfViewer (toolbar UI for printing and saving) for embedding PDF viewing in .NET applications.

DepreciatedStale
C#

PDFKeeper

Gui

Open-source .NET PDF document management/storage application: full-text-indexed search across a single-user SQLite database or a shared multi-user (on-premises or cloud) database; bulk or automated upload via watched folders; metadata tagging (title, author, subject, category, keywords); PDF bursting; document-state flags; and notes viewing/editing alongside search-term snippets.

C++

SumatraPDF

Gui

Free, multi-format document reader for Windows supporting PDF, EPUB, MOBI, CBZ, CBR, FB2, CHM, XPS, and DjVu viewing.

C++

Okular

Gui

KDE's universal document viewer: reads PDF (via Poppler), EPUB, DjVU, Markdown, images, and CBR/CBZ comics; adds inline and popup annotations, highlights, underlines, and freehand text; views and verifies embedded digital signatures and can sign PDFs; text selection with a magnifier tool; thumbnail navigation and an auto-generated table of contents.

C++

GSview

Gui

Open-source graphical front-end for Ghostscript on Windows/Linux/macOS: views and navigates PostScript and PDF files, and converts sequences of PDF pages to image files (from bitmap through TIFF-pack formats) at selectable resolutions.

Stale
Java

Pdf Viewer Plus

Gui

Simple Android PDF viewer app: opens PDFs from local storage or internet links, and can download PDFs to the device.

DepreciatedStale
Java

Simple Android PDF Viewer

Gui

Android PDF viewer (built on pdf.js) that opens PDFs via Android content providers without requiring app permissions, rendering them inside a sandboxed WebView with no network/filesystem/content-provider access and a restrictive Content-Security-Policy for security.

Java

AndroidPdfViewer

Library

Android library (built on PdfiumAndroid/PDFium) for displaying PDF documents with animated page transitions, gestures, pinch/double-tap zoom, and page navigation; ownership recently transitioned and the project is seeking contributors.

Java

PdfViewPager

Library

Android widget that displays PDF documents (from app assets, SD card, or remote URLs) inside Activities or Fragments, with built-in zooming and panning; requires Android API 21+ (uses the platform PdfRenderer class).

Stale
JavaScript

PDF.js

Library

A general-purpose, web standards-based platform for parsing and rendering PDFs.

JavaScript

PDFObject

Library

Lightweight JavaScript utility for dynamically embedding PDFs in web pages via an iframe, with automatic detection of inline-PDF browser support, graceful fallback content for unsupported browsers/mobile, base64 PDF handling, and support for Adobe PDF Open Parameters (e.g. linking to a specific page).

JavaScript

React-PDF

Library

Displays existing PDFs in React apps (built on PDF.js): renders pages via `<Document>`/`<Page>` with canvas, custom, or no rendering; shows outline/table of contents and thumbnails; selectable text and annotation/link layers; form rendering; page rotation and zoom; password-protected PDF handling; JPEG2000 and non-Latin (cMap) support. (Complementary to @react-pdf/renderer, which creates PDFs rather than displaying them.)

JavaScript

react-pdf

Library

Creates PDF files using React components (`Document`, `Page`, `Text`, `View`) with a StyleSheet/flexbox styling API; renders in-browser via `<PDFViewer>` or saves to file/buffer in Node. (Complementary to wojtekmaj/react-pdf, which displays existing PDFs rather than creating them.)

JavaScript

Universal Viewer

Library

Open-source, IIIF-based media viewer for sharing books, manuscripts, newspapers, film, audio, and 3D objects on the web; renders images, PDFs, audio, video, and 3D files as an embeddable npm package.

JavaScript

vue-pdf

Library

Vue 2 component for displaying PDFs from URLs, file paths, or binary data: page navigation, 90°-increment rotation, password-protected PDF handling, per-page or range printing, load-progress tracking, text extraction/selection, clickable internal links, and rendering multiple page instances at once.

Stale
JavaScript

pdfh5

Plugin

Framework-agnostic (with Vue/React support) web PDF preview plugin built on PDF.js: touch gestures (pinch-zoom, double-tap, scrolling), selectable/searchable text layer, annotations (highlights, freetext, ink, stamps, signatures), password-protected PDF support, page caching for large files, print support, and a sandbox mode blocking JS injection/XSS.

JavaScript

react-native-pdf

GuiPlugin

React Native PDF viewer component: loads PDFs from URLs, local files, assets, blob data, or base64 (with optional caching); page jumping, page-by-page or continuous scrolling, pinch/double-tap zoom, and password-protected PDF handling. Uses PDFKit on iOS, PDFium on Android, and a native implementation on Windows; also supports Expo via a config plugin.

JavaScript

pdfme

Cli

TypeScript PDF generation toolkit for Node.js and browsers: generates PDFs from simple JSON templates, includes a WYSIWYG template designer and a PDF viewer component, plus CLI tools for template validation, diagnostics, and image-based layout inspection.

Lua

KOReader

Gui

Document viewer built for e-ink readers: fixed-layout (PDF, DjVu, CBT, CBZ) and reflowable (EPUB, FB2, Mobi, DOC, RTF, HTML, CHM, TXT) formats; reflows scanned PDFs via K2pdfopt; customizable typography (margins, line spacing, fonts); StarDict dictionary and Wikipedia lookups; Calibre/Wallabag/Google Translate integration; and built-in FTP client, SSH server, and OPDS catalog support.

Objective-C

Skim

Gui

Open-source (BSD) macOS PDF reader and note-taker for reading and annotating scientific papers: adding/editing notes and highlights (with one-swipe highlighting), exporting notes as text, TOC/thumbnail navigation with visual history, full-screen presentation mode with transitions, snapshots, bookmarks, Spotlight search, LaTeX/SyncTeX/PDFSync integration, BibDesk compatibility, Keychain-saved passwords, and extensive AppleScript support.