← Back to Open-Source PDF Software

Open-Source PDF GUI Software

Standalone graphical desktop (or mobile) application

31 tools

C++

AbiWord

CliGui

Cross-platform word processor whose CLI conversion mode (`abiword --to=txt`) doubles as a lightweight PDF text-extraction tool: imports a PDF's text content and exports it to plain text, HTML, ODT, DOCX, and other formats supported by its plugin system. Originally built as a free, cross-platform alternative to Microsoft Word, with PDF import/export handled through its own document-filter architecture rather than a dedicated PDF engine. Well-suited for batch format conversion where PDF is one of several formats needed.

Tested
Python

Calibre

CliGui

E-book library management application built around organizing, converting, and reading large personal e-book collections; its bundled `ebook-convert` CLI happens to double as a capable PDF-to-plain-text (and PDF-to-other-e-book-format) converter, alongside dozens of other supported formats. Not a PDF-specific tool — PDF is just one of many formats its conversion pipeline handles — but a genuinely useful one when PDF-to-text conversion is needed as part of a broader e-book workflow.

Tested
C#

clawPDF

Gui

Open-source virtual (network) printer for Windows that turns any application's Print dialog into a PDF-generation pipeline. Outputs PDF/A-1b/2b/3b, PDF/X, PDF/Image, PNG, JPEG, TIFF, and plain text; runs OCR on the printed content; and password-protects output with up to 256-bit AES encryption. Built with multi-user and enterprise deployment scenarios in mind, including centrally managed print-queue configurations across a network.

Stale
C++

diff-pdf

CliGui

Compares two PDF files page-by-page and reports whether they differ, either as a simple exit code for scripting or, with `--output-diff`, a new PDF that visually highlights every difference between the two inputs. Also offers a GUI mode for interactive side-by-side comparison with synchronized zoom and page-shifting, useful for spotting translation-only or formatting-only changes between two revisions of the same document. Commonly used in CI pipelines to catch unintended visual regressions.

Java

Eclipse BIRT

GuiWeb App

Open-source reporting and data-visualization project under the Eclipse Foundation, built around three cooperating pieces: a report design/engine/model for generating reports from arbitrary data sources, a charting module for standalone or embedded graphical visualizations, and a web viewer component for delivering interactive reports in a browser. Reports can be exported to PDF among other output formats. Widely used as the reporting layer embedded inside larger enterprise Java applications.

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#

Gios.PSM

CliGuiLibrary

Free, portable utility for splitting and merging PDF files, distributed as a reusable library, a console tool, and a GUI — pick whichever interface fits a given workflow. Also converts JPG images directly into PDF pages. Requires no installation, running as a self-contained portable executable, which is its main draw over heavier split/merge alternatives in the same niche.

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

Images To PDF

Gui

Android PDF toolkit centered on creating PDFs from camera or gallery images (plus converting plain text files to PDF), alongside managing existing PDFs: merge, split, compress, remove/rearrange/rotate pages, extract images, and encrypt/decrypt. Aimed at the common mobile use case of turning photographed documents or receipts into a shareable PDF, with the page-management tools included as a secondary, more general-purpose capability.

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

LibreOffice

CliGui

Full office suite (Writer, Calc, Impress, Draw) that doubles as a batch PDF-conversion tool via its headless CLI mode (`--headless --convert-to`): imports PDF content through the `writer_pdf_import` filter and exports it to plain text, ODF, and dozens of other document formats it already supports natively. Since it's a general office suite rather than a PDF-specific tool, conversion fidelity depends on how cleanly a given PDF's layout maps back onto Writer's own document model.

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

Python

Open Paperless

Gui

Simplified fork and UI rethink of Mayan EDMS aimed at home users rather than enterprise document-management deployments: scans, indexes, and archives paper documents for later retrieval, with a deliberately reduced feature set compared to the underlying Mayan EDMS platform it forked from. Predates and is unrelated to the now much more widely used Paperless-ngx project, despite the similar naming and overlapping goal of turning a scanner into a searchable document archive.

Stale
Python

Paperwork

Gui

Personal document manager (Linux/Windows) for scanning, OCR'ing, indexing, and searching paper documents and PDFs; the project's own repository topics list OCR, scanning, PDF support, indexing, and document management as its core feature areas.

Python

PDF Arranger

Gui

Small python-gtk application, which helps the user to merge or split PDF documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical interface. A GUI front-end for pikepdf; can also import images into a PDF when img2pdf is installed.

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
Python

pdf2docx

CliGuiLibrary

Converts PDF files to DOCX (Word) format, preserving formatting and layout — fonts, positioning, images — rather than dumping plain text into a Word document, and extracts tables as genuine Word tables rather than flattened text. Offers both a CLI and a GUI, covering scripted batch conversion and one-off interactive use. A common need for taking a PDF that needs further editing back into an editable Word document.

C#

PDFCreator

Gui

Source code of the well-known PDFCreator from pdfforge, a free virtual-printer application: install it once and any application's own Print dialog can output directly to PDF. Supports merging and reordering pages, password and digital-signature protection, PDF/A archival compliance, custom cover pages, and automated post-processing actions (FTP upload, email delivery, custom scripting) triggered on every conversion. Widely used as a default 'print to PDF' tool on Windows.

C++

PDFedit

GuiLibrary

PDF editing library, GUI application, and command-line tools for viewing and directly editing the internal structure of PDF documents — raw objects, streams, and cross-reference tables — rather than just visual page content. Particularly useful for inspecting and repairing malformed or non-standard PDFs that better-behaved editors refuse to open. A Flatpak build is available for running it on modern Linux distributions despite the project itself being unmaintained since 2020.

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.

Python

PDFMathTranslate

CliDockerGuiLibraryPlugin

Translates scientific PDF documents while preserving layout, formulas, charts, tables of contents, and annotations; supports Google Translate, DeepL, Ollama, OpenAI, and other translation backends via CLI, GUI, Docker, or a Zotero plugin, with batch/directory translation and partial-document translation.

Java

PDFsam

Gui

Free, cross-platform desktop app (JavaFX, self-contained with a bundled JRE since v4) for splitting, merging, mixing, rotating, and extracting pages from PDF files through a simple drag-and-drop GUI. Built around PDFBox and other open-source PDF libraries under the hood, packaging their capabilities into point-and-click tools rather than requiring command-line usage. A free, basic-operations counterpart to PDFsam's own commercial 'Enhanced' edition, which adds more advanced features.

C#

PDFTK Builder

CliGui

Free Windows GUI front-end for the PDFtk command-line tool, exposing its operations — split, merge, stamp, add page numbers, rotate, edit metadata, manage bookmarks and attachments — through point-and-click dialogs instead of the command line. Aimed at users who want PDFtk's capabilities without writing or remembering CLI invocations, or learning PDFtk's own multi-flag command syntax for routine batch operations.

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.

C++

Scribus

Gui

Free, open-source desktop publishing (DTP) application for laying out newspapers, brochures, newsletters, posters, and books, with professional-grade PDF export: PDF/X-3 and PDF/X-4 support, native PDF 1.6 output with embedded OpenType fonts, transparency and encryption, and interactive PDF form fields, annotations, and bookmarks.

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.

C++

xournalpp

Gui

Handwriting notetaking application (GTK3) that annotates directly on top of imported PDFs: highlight, underline, or strike through selected/copied PDF background text, follow hyperlinks in the background PDF, and export the annotated result to SVG, PNG, or PDF from either the GUI or the command line. Supports pressure-sensitive pen and stylus input (e.g. Wacom tablets), positioning it as an open-source alternative to note-taking apps like GoodNotes or Notability.

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.