← Back to Open-Source PDF Software

Open-Source PDF Software Capable of Viewing PDFs

Display/view PDFs interactively (viewer/reader UI)

23 tools

Java

AndroidPdfViewer

Library

Android library (built on PdfiumAndroid/PDFium, the same rendering engine Chrome uses) for displaying PDF documents with animated page transitions, gesture-based pinch/double-tap zoom, and page navigation controls baked into the view. One of the more widely-adopted Android PDF-viewing libraries historically, though ownership recently transitioned to new maintainers and the project is actively seeking contributors to keep it current.

C

Evince

Gui

GNOME's default document viewer, built to replace the multiple format-specific viewers that used to ship across the GNOME desktop with one unified application. Uses Poppler as its PDF backend (plus Ghostscript for PostScript, and native support for DjVu, DVI, multi-page TIFF, and comic archive formats). Supports text/highlight annotations, text selection and copying (including from OCR'd scans), an optional override of a document's print restrictions, integrated search, thumbnails, and dual-page/full-screen slideshow viewing — though it has no form-filling support.

C++

GSview

Gui

Open-source graphical front-end for Ghostscript on Windows/Linux/macOS, giving Ghostscript's command-line PostScript/PDF interpreter a proper windowed UI: views and navigates PostScript and PDF files, and converts sequences of PDF pages to image files (from raw bitmap through TIFF-pack formats) at a selectable output resolution. Originally developed by Russell Lang alongside Ghostscript itself.

Stale
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.

C

MuPDF

CliGuiLibrary

Lightweight, fast C library, desktop viewer, and CLI toolset for PDF, XPS, and e-book formats, built by Artifex around the same rendering core used in Ghostscript. Renders pages and extracts text/images/metadata/structured content; creates, splits, merges, and compresses PDFs; adds annotations (highlights, stamps, shapes); permanently redacts content; and digitally signs documents. Converts between PDF, SVG, PNG, HTML, and PostScript, and embeds into web pages and native apps via its library bindings.

Tested
C++

Okular

Gui

KDE's universal document viewer: reads PDF (via Poppler), EPUB, DjVU, Markdown, images, and CBR/CBZ comic archives through a shared plugin architecture, so the same viewer UI works across formats. Adds inline and popup annotations, highlights, underlines, and freehand text; views and verifies embedded digital signatures and can sign PDFs itself; offers text selection with a magnifier tool; and provides thumbnail navigation alongside an auto-generated table of contents.

Java

Pdf Viewer Plus

Gui

Simple Android PDF viewer app: opens PDFs from local device storage or internet links, and can download a remote PDF to the device before opening it. A minimal, single-purpose viewer without the annotation, form-filling, or editing features found in fuller-featured Android PDF apps — useful specifically when the only requirement is opening and reading a PDF on-device.

DepreciatedStale
JavaScript

PDF.js

Library

Community-driven, web-standards-based PDF engine maintained by Mozilla and built into Firefox as its native PDF viewer. Renders pages to canvas for in-browser viewing and exposes a document API (incl. `getTextContent()`) for reading page content programmatically. Ships as both an embeddable viewer UI and the underlying `pdfjs-dist` library, usable standalone in Node for headless processing without a browser.

Tested
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.

C

PdfiumViewer

Library

WinForms control wrapping Google's PDFium rendering engine (the same engine behind Chrome's built-in PDF viewer), for embedding PDF viewing directly inside .NET desktop applications. Split into three cooperating pieces: `PdfDocument` for loading and querying page/document data, `PdfRenderer` for rendering pages with zoom and scroll support, and `PdfViewer` for a ready-made toolbar UI covering printing and saving. No longer maintained.

DepreciatedStale
C#

PDFKeeper

Gui

Open-source .NET document management application purpose-built around PDF storage and retrieval, with full-text-indexed search across either a single-user SQLite database or a shared multi-user database (on-premises or cloud). Supports bulk or automated ingestion via watched folders, metadata tagging (title, author, subject, category, keywords), splitting ('bursting') multi-page PDFs, per-document state flags, and inline notes with search-term-snippet previews. Aimed at personal or small-team archives rather than enterprise DMS platforms.

JavaScript

pdfme

Cli

TypeScript PDF generation toolkit for Node.js and browsers: generates PDFs from simple JSON templates rather than imperative drawing code, and includes a WYSIWYG template designer plus a PDF viewer component for previewing the result. Also ships CLI tools for template validation, diagnostics, and image-based layout inspection. The template-driven approach suits use cases like invoices or certificates where non-developers need to adjust the layout.

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).

Java

PdfViewPager

Library

Android widget that displays PDF documents — from app assets, SD card, or remote URLs — inside Activities or Fragments, with built-in pinch-zoom and panning gestures baked into the widget itself. Requires Android API 21+, since it's built directly on the platform's own `PdfRenderer` class rather than bundling a separate rendering engine like PDFium or pdf.js. A lightweight choice specifically because it leans on what Android already ships rather than adding a rendering dependency.

Stale
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

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.)

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.

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.

C++

SumatraPDF

Gui

Free, multi-format document reader for Windows built for speed and a minimal footprint rather than feature breadth: supports PDF, EPUB, MOBI, CBZ, CBR, FB2, CHM, XPS, and DjVu viewing in one lightweight application with near-instant startup. Popular as a fast default PDF viewer replacement on Windows, particularly among developers who want a no-frills reader without the overhead of a full office-suite-adjacent PDF application.

JavaScript

Universal Viewer

Library

Open-source, IIIF-based media viewer for sharing books, manuscripts, newspapers, film, audio, and 3D objects on the web — used widely by libraries, archives, and museums as their public-facing digitized-collection viewer. Renders images, PDFs, audio, video, and 3D files through a single embeddable npm package driven by the IIIF (International Image Interoperability Framework) presentation API, rather than format-specific custom viewers for each media type.

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
C++

Xpdf

CliGui

PDF viewer plus a full command-line toolset (pdftotext, pdftops, pdftoppm, pdftopng, pdftohtml, pdfinfo, pdfimages, pdffonts, pdfdetach) for viewing PDFs and converting them to text, PostScript, image, or HTML, alongside metadata, image, font, and attachment extraction. The original codebase Poppler itself forked from; poppler-utils has since become the more actively maintained fork of these same tools, but Xpdf continues independent development under its original author.