← Back to Open-Source PDF Software

Open-Source PDF Software Capable of Splitting PDFs

Split a PDF into multiple files

27 tools

Java

Apache PDFBox

CliLibrary

Java library and CLI toolset covering PDF creation from scratch (with embedded fonts and images), Unicode text extraction, splitting and merging, form field extraction and filling, PDF/A-1b validation via its Preflight module, rendering pages to PNG/JPEG, printing via the Java printing API, and digital signing. The de facto standard Java PDF library, used as the underlying engine behind numerous other tools in this directory (PDFsam, PDFLayoutTextStripper, PdfBox-Android, and more).

Tested
Perl

CAM::PDF

Library

Perl module (PDF 1.0–1.5) for reading and writing PDFs: extract/delete/duplicate pages, get page text/content trees, append/prepend pages from other PDFs, handle password-protected documents and permissions, list/add fonts, list/fill form fields, remove annotations, detect linearized PDFs, remove unused objects, and apply compression filters.

Tested
Stale
OCaml

Coherent PDF (cpdf)

Cli

Command-line PDF manipulation toolkit: split, merge, and extract pages while preserving bookmarks; encrypt/decrypt (AES 128/256); scale, rotate, crop, and flip pages; stamp text, watermarks, and page numbers; manage annotations, metadata, and file attachments; rasterize pages to images; and produce PDF/UA-tagged output.

Tested
Python

doc2text

Library

Extracts higher-quality OCR text from poorly scanned PDFs and images (PDF, PNG, JPG, BMP, TIFF) by fixing common scan errors: crops to estimated text regions, deskews tilted pages, and optimizes images before running Tesseract OCR; supports bulk processing (splitting multi-page PDFs) and language-code hints for accuracy.

Stale
Ruby

Docsplit

CliLibrary

CLI utility and Ruby library that extracts searchable UTF-8 plain text from documents, generates page images and thumbnails in any format, splits documents into single-page or full PDFs, and extracts metadata (title, author, page count). Built by DocumentCloud for processing large volumes of source documents in journalism/investigative-reporting workflows, wrapping several underlying tools (Poppler, ImageMagick, Tesseract) behind one consistent CLI.

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

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

JavaScript

pdf-lib

Library

Dependency-free JavaScript library (works in browsers, Node, Deno, React Native) to create PDFs from scratch or modify existing ones: add/insert/remove/copy pages, draw text (with embedded custom fonts), images (PNG/JPEG), vector graphics and SVG paths; create and fill AcroForm fields (text, checkbox, radio, dropdown) and read/flatten them; embed pages from other PDFs, split and merge documents, add file attachments, and read/set document metadata.

Stale
Go

pdfcpu

CliLibrary

Go PDF processor (CLI + library) supporting PDF up to 2.0 (ISO 32000-2): validate, optimize, split, trim, and merge PDFs; encrypt/decrypt; resize, rotate, and crop pages; extract/manipulate images, fonts, and metadata; manage attachments and portfolios; validate, report, and remove digital signatures; add/remove stamps and watermarks; process forms, bookmarks, and annotations; and generate booklets, N-up/N-down layouts, grids, and posters.

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

Rust

PDFOxide

BindingsCliLibraryServer

PDF toolkit built around a Rust engine, exposed as native bindings for ~20 languages (Python, JavaScript/TypeScript, Go, C#/.NET, Java, and more), a CLI, and an MCP server for AI-assistant integration: text/character-level and image extraction, form-field reading and filling, Markdown/HTML conversion with heading detection, PDF creation and editing, watermarking, merging/splitting, regex-based search, and metadata access.

Tested
Python

pdfrw

Library

Reads and writes PDFs: subset/merge/rotate pages, modify metadata, build reusable Form XObjects, N-up and booklet layouts, watermarking (overlay/underlay), image and Form-XObject extraction, poster-sized output, and splitting 2-up PDFs; integrates with ReportLab (embedding existing PDF content into newly generated documents) and rst2pdf. No encryption/decryption support, and limited compression-filter support (external tools like pdftk needed for full decompression).

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

PDFtk Server

Cli

Command-line tool to merge, split, and rotate PDFs; fill forms with FDF/XFDF data and flatten them (or generate an FDF stencil from a form's fields); encrypt and decrypt with passwords; add watermarks and stamps; manage bookmarks, metadata, and attachments; repair damaged PDFs; and recompress page streams. The Java-rewritten 'Server' edition of the classic PDFtk command-line tool, maintaining the same CLI interface and command syntax as the original.

Tested
Python

pikepdf

Library

Pythonic wrapper around qpdf for reading, writing, and manipulating PDFs: merge, split, rotate, rearrange, and delete pages; read/write XMP and DocumentInfo metadata (auto-synced); losslessly extract or replace embedded images (preserving original JPEG compression); open password-protected files and save with RC4, AES-128, or AES-256 encryption (or remove it); linearize for 'fast web view'; direct object-level/content-stream access; automatic repair on open; access to qpdf's Job API; and Jupyter notebook preview rendering.

C++

Poppler

CliLibrary

PDF rendering library and command-line suite — a fork of Xpdf that's become the de facto standard PDF engine underlying much of the open-source PDF ecosystem, powering tools like Evince, Okular, and countless downstream wrappers. Ships pdftotext, pdfimages, pdftoppm, pdftocairo, pdftohtml, pdftops, pdfinfo, pdffonts, pdfdetach, pdfattach, pdfseparate, pdfunite, and pdfsig, covering text/image extraction, page rendering, format conversion, metadata, attachments, and signature verification.

Tested
Python

PyMuPDF

BindingsLibrary

Python bindings for MuPDF covering text extraction (plain, rich dictionary with font/size/color/bbox, HTML/XML, raw blocks, table-to-Markdown); embedded image extraction and high-DPI page rendering to Pixmaps; Tesseract-based OCR (100+ languages); reading/writing annotations (highlights, notes, stamps, ink) and redactions (with permanent apply); AcroForm reading and filling; page insert/delete/reorder, merge/split, and metadata editing; PDF creation and Markdown-to-PDF conversion; password protection/RC4/AES encryption; hyperlink and cross-reference handling; and outline/bookmark read-write.

Python

pypdf

Library

Pure-Python PDF library: split, merge, crop, and transform pages; add passwords/encryption and decrypt (with optional AES support); read and add metadata; extract text; read and create annotations; and attach custom data/viewer settings. Companion CLI tool `pdfly` offers additional command-line operations.

C++

qpdf

Library

Low-level, content-preserving PDF structure tool: linearizes PDFs for fast web view, encrypts and decrypts, splits and merges files, inspects and edits PDF object structure directly, and repairs damaged files without altering actual page content. Explicitly does not render pages or extract text — its own documentation is clear this is a structural transformation tool, not a content-reading one, and points elsewhere (e.g. the `pdftools` R package) for extraction needs.

Tested
R

qpdf

BindingsLibrary

R bindings for the qpdf C++ library, exposing content-preserving PDF transformations from R: splitting, combining/merging, and compressing PDF files (e.g. `pdf_compress()`). Does not read PDF content itself — the maintainers point to the 'pdftools' R package for text/data extraction.

JavaScript

scissors

Driver

Node.js wrapper around PDFtk, Ghostscript, and ImageMagick for PDF manipulation: split/select/reorder/reverse pages, filter even/odd pages, join multiple PDFs, rotate (90/180/270/360°), crop (noted as unreliable), extract text and embedded images, extract metadata/properties, and render pages to PNG at a given DPI.

Stale
Java

Stirling-PDF

Web ApiWeb App

Self-hostable PDF toolkit with 50+ tools: edit, merge, split, sign, redact, and convert PDFs; OCR scanned pages; compress files; validate signatures; apply watermarks; and automate workflows via no-code pipelines, a REST API, and webhooks. Offered as a browser-based UI, desktop client, or self-hosted server (incl. air-gapped deployment).

Go

uniDoc

Library

Comprehensive Go PDF toolkit for reading, writing, and processing PDFs: text/image/table extraction, merging/splitting/rotating/rearranging pages, form creation and filling, encryption/decryption, digital signing, watermarking, and image-to-PDF conversion.

DepreciatedStale
Go

UniPDF

Library

Go PDF library (pure Go): generates reports/invoices with styled text and tables; creates and fills forms; merges, splits, reorders, and rotates pages (incl. N-up layouts); extracts text (with position/formatting), images, and tabular data to CSV; adds/converts images to PDF; removes or adds password protection; validates and applies digital signatures; compresses/optimizes files; adds watermarks; and supports CCITTFax/JBIG2 image decoding.