Open source PDF tools, and what their licences require
Of the 155 tools in this index, 48 are open source. 25 are under a permissive licence, which places no condition on what you build with them beyond attribution. 23 are copyleft, which does place conditions on what you distribute, and 10 of those are AGPL - the licence that reaches through a network service, so running it as a product is enough to trigger it.
Why the licence is the question, not the price
Every tool below costs nothing to download, and that is the least interesting thing about any of them. What decides whether you can use one is what its licence obliges you to do when you ship.
A permissive licence puts no condition on what you build with it, and it is not free of conditions: Apache 2.0 asks you to ship a copy of the licence, to state that you changed files, and to carry any NOTICE file with the distribution. A copyleft licence adds a source obligation, and which one depends on the licence and its version: the LGPL limits it to changes in the library itself, the MPL to the files you modify, and the GPL to the whole work you distribute. The AGPL extends that obligation to software you merely run and let other people reach over a network, which is what a hosted service is, and the obligation is a source offer to those users rather than a promise that everything you run becomes public.
Several of the AGPL tools here are dual-licensed: Artifex sells commercial licences for Ghostscript and MuPDF, so the AGPL is a default rather than a wall. That is recorded per tool rather than assumed.
MIT - 8 permissive
Ship it inside closed software. Attribution is the whole obligation.
- Camelot MIT
- FPDI MIT (FPDI itself); the FPDI PDF-Parser add-on is commercial, licensed per developer
- Gotenberg MIT
- jsPDF MIT
- Nougat MIT for the Nougat codebase; CC-BY-NC for the model weights, permitting non-commercial use only. The repository LICENSE is MIT and its copyright line is Meta Platforms, Inc. and affiliates; the README states the code/weights split explicitly. No commercial weights licence or paid tier is offered. The PyPI package is nougat-ocr and its current public release is 0.1.17 (uploaded 2023-10-04); the repository source declares 0.1.18, but that is not a published package release. GitHub releases are model-weight releases 0.1.0-small and 0.1.0-base (22 August 2023), not a software version.
- pdf-lib MIT. The npm package is authored by Andrew Dillon and the repository is Hopding/pdf-lib. The current package metadata and README declare MIT; there is no vendor service or commercial edition. Dependencies are pako, tslib, @pdf-lib/upng and @pdf-lib/standard-fonts; font embedding with custom fonts uses the separate fontkit module.
- pdfminer.six MIT. The repository LICENSE is MIT and its copyright is 2004-2016 Yusuke Shinyama; pdfminer.six is the community-maintained Python 3 continuation of that project. No company owner or legal maintainer entity is documented, so the owner is recorded as pdfminer.six contributors rather than a company. The package is published as pdfminer.six on PyPI under MIT; the source licence is established, so openSource is true.
- pdfplumber MIT. The repository LICENSE.txt is the MIT License, copyright 2015 Jeremy Singer-Vine, and PyPI classifies the package as OSI-approved MIT. The package is pure Python with direct dependencies on pdfminer.six==20260107, Pillow>=12.2.0 and pypdfium2>=5.9.0; the wheel is py3-none-any, while Pillow and pypdfium2 may bring platform wheels. There is no paid tier, hosted service or commercial edition.
Apache 2.0 - 11 permissive
Same freedom as MIT, plus a patent grant and a requirement to state changes.
- Apache FOP Apache-2.0
- Apache PDFBox Apache-2.0
- Apache Tika Apache-2.0, with a number of bundled subcomponents under their own licences (documented in LICENSE.txt)
- GROBID Apache-2.0 (documentation CC-0, annotated training data CC-BY)
- ICEpdf Apache-2.0
- PDF.js Apache-2.0. The repository LICENSE is the Apache License, Version 2.0. PDF.js is a Mozilla open-source project; pdfjs-dist is the pre-built npm distribution Mozilla publishes, not a separate hosted service. There is no Mozilla-hosted PDF.js processing endpoint or paid edition.
- pdfcpu Apache-2.0. The repository LICENSE.txt is the Apache License, Version 2.0. The README identifies Horst Rutter as the maintainer of pdfcpu and notes his PDF Association membership; the Go module is github.com/pdfcpu/pdfcpu. No price, subscription or hosted service is published; the Apache-2.0 licence is the terms.
- PDFium BSD-3-Clause for PDFium itself, with a LICENSE file that also carries the full Apache License 2.0 and further third-party licence text. The copyright line is The PDFium Authors. PDFium is a Google-maintained open-source project built with Chromium's GN/Ninja/depot_tools toolchain; there is no product release feed and no paid edition. More than one licence - see the record.
- qpdf Apache-2.0. qpdf is copyright 2005-2021 Jay Berkenbilt and 2022-2026 Jay Berkenbilt and Manfred Holger, licensed under the Apache License, Version 2.0. The current stable release is qpdf 12.4.2, published 27 September 2026. qpdf is an upstream C++ library and command-line tool; pikepdf is a separate Python binding to qpdf and is not part of this record. No price, SaaS subscription or commercial licence is published; the Apache-2.0 licence is the terms.
- Tesseract OCR Apache-2.0 for Tesseract itself. It bundles/relies on Leptonica (BSD-2-Clause) and other dependencies with their own licences, and language/script support comes from separately distributed tessdata traineddata files. The engine is free/open source; no hosted Tesseract service, account or price is offered. Third-party wrappers/services are separate products. More than one licence - see the record.
- Tesseract.js Apache-2.0. The npm package is 7.0.0 (latest GitHub release 15 December 2025), authored by the naptha project; the WebAssembly engine is a separate naptha/tesseract.js-core package. No company is documented and no hosted service is offered. The project wraps the separate Tesseract OCR engine and does not modify its recognition model.
BSD - 3 permissive
Same shape as MIT. The clauses vary, so read which BSD it is.
- pypdf BSD-3-Clause. The LICENSE file carries copyright 2006-2008 Mathieu Fenniak and contributions copyright Ashish Kulkarni, Steve Witham and other pypdf contributors, with the three BSD-3-Clause conditions including the no-endorsement clause. The package metadata declares BSD-3-Clause and Python >=3.9. The pyproject lists Mathieu Fenniak as author and stefan6419846 and Martin Thoma as maintainers; the project describes itself as a collaborative effort under the py-pdf organisation, not a company or a hosted service.
- ReportLab Split by product. The open-source ReportLab PDF Toolkit (the `reportlab` package on PyPI) is BSD-licensed; version 5.0.1 requires Python >=3.9 and <4 and publishes a py3-none-any wheel. It is free to use and redistribute subject to the BSD notice/disclaimer/no-endorsement terms. ReportLab PLUS (the separate commercial `rlextra` package) is proprietary, sold under ReportLab's standard terms as an annual or perpetual licence priced by pages of PDF output per month; the current GBP 1,728/year entry for up to 30,000 pages/month is PLUS pricing, not a price for the open-source package, and remains in internal notes only. PLUS is also where RML templating, PageCatcher and auto-tagging live.
- WeasyPrint BSD-3-Clause. WeasyPrint is free software under a BSD licence; the current PyPI package is 70.0, requires Python >=3.10, and depends on pydyf, cffi, tinyhtml5, tinycss2, cssselect2, Pyphen, Pillow and fonttools, plus the system Pango >=1.44 library. It was created and developed by Kozea; professional support, maintenance and community management are provided by CourtBouillon, which is recorded as the current maintainer. No account or paid software edition is required.
zlib - 1 permissive
Permissive, and shorter than MIT. Altered versions must be marked as altered.
- zathura zlib for the core (LICENSE) and for zathura-pdf-poppler (LICENSE), read from the files; other format plugins were not read, so the licence of a given installation depends on the installed plugins. The core is free/open source, permissive and non-copyleft.
Public domain - 2 permissive
No conditions at all.
- pdf-redactor CC0-1.0 public-domain dedication (not MIT). The package metadata declares CC0-1.0; the README credits Joshua Tauberer and Antoine McGrath. The current PyPI release is 0.0.1, uploaded 19 April 2021, requires Python >=3.7 and <4, and depends on pdfrw and defusedxml. There is no paid edition, hosted service or account. More than one licence - see the record.
- pdftk-java GPL-2.0-or-later for the pdftk-java code, per the source headers. The Java port is by Marc Vinyals and is a port of PDFtk, originally copyright 2003-2013 Steward and Lee, LLC. The bundled license_gpl_pdftk folder carries third-party terms for the modified iText library, Apache Batik, BouncyCastle and other components, plus the original PDFtk licence note stating that PDFtk is not public domain, that third-party libraries have their own terms, and that commercial redistribution as part of another product needs a commercial licence unless the distributor's software is GPL-compatible. Ordinary local use is free and open source; the third-party/commercial-redistribution boundary is recorded separately. More than one licence - see the record.
LGPL - 4 copyleft
Weak copyleft. Changes to the library itself must be shared; linking it into your own code does not make your code LGPL.
- dompdf LGPL-2.1
- fpdf2 LGPL-3.0
- LibreOffice Draw MPL-2.0, dual-licensed MPL-2.0/LGPLv3+ in practice - official pages contradict each other More than one licence - see the record.
- tc-lib-pdf LGPL-3.0-or-later. Packagist metadata for 8.81.1 declares LGPL-3.0-or-later and requires PHP ^8.2 plus ext-ctype/filter/hash/json/mbstring/openssl/pcre/xml/zlib and the tc-lib-* companion packages; GitHub reports NOASSERTION because of additional licence text. The library is free/open source; no hosted service, account or price applies. Copyright is Tecnick.com/Nicola Asuni. More than one licence - see the record.
MPL - 1 copyleft
File-level copyleft. Files you modify must be shared; files you add alongside it need not be.
- pikepdf MPL-2.0 for pikepdf. The PyPI metadata reports license_expression MPL-2.0 and the documentation copyright is 2026 James R. Barlow. pikepdf wraps qpdf, which is a separate project under the Apache License 2.0, copyright 2005-2021 Jay Berkenbilt and 2022-2026 Jay Berkenbilt and Manfred Holger, and the wheel binaries bundle other dependencies under their own licences. No corporate ownership relationship between pikepdf and qpdf is asserted or implied; they are separate projects with separate copyright holders and licences. More than one licence - see the record.
GPL - 8 copyleft
Strong copyleft. A work built on it and distributed must be GPL as a whole. Many of these are dual-licensed, so a commercial licence may be purchasable instead.
- gImageReader GPL-3.0
- mPDF GPL-2.0-only. Packagist metadata for 8.3.1 declares GPL-2.0-only and requires PHP ^5.6 || ^7.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0, ext-gd, ext-mbstring and its PHP package dependencies. The project is community-maintained; the README credits Ian Back as the original author, and no company is documented. Copyleft terms matter for closed-source applications; no permission to use a later GPL version was established.
- Okular GPL-2.0-or-later. Okular is Free Software developed by the KDE community; the app page lists GPL-2.0+ and GFDL-1.3 for documentation. No proprietary edition, account, hosted service or price applies.
- PDF Arranger GPL-3.0-or-later. The AppStream metadata declares project_license GPL-3.0-or-later; setup.py's source header says GNU GPL version 3 or later; the repository COPYING is the GPL version 3 text; setup.py names Jerome Robert as author and The PDF Arranger team as the AppStream developer. GitHub's repository metadata reports GPL-3.0 without the or-later suffix, so the source and AppStream wording is preferred for the licence field. There is no paid edition, hosted service or price.
- Poppler GPL-2.0-or-later for changes made under the Poppler project to the core and utilities, over the xpdf-3.0 base whose files carry the GPL version 2 or later notice. The release tarball contains COPYING (GNU GPL version 2) and COPYING3 (GNU GPL version 3) for bundled components, and the README states that Poppler is licensed under the GPL rather than the LGPL, so programs calling Poppler must be GPL-compatible. Bundled components and distribution packaging can carry additional licences; no permissive licence is offered inside Poppler itself. More than one licence - see the record.
- SumatraPDF GPL-3.0, with some code under BSD. The repository COPYING file is the full GNU GPL version 3 text, COPYING.BSD covers BSD-licensed components, and the README describes SumatraPDF as a multi-format reader for Windows under the (A)GPLv3 license with some code under the BSD license (see AUTHORS) and names the SumatraPDF Project Authors rather than a company. GitHub metadata reports GPL-3.0. Bundled third-party components carry their own licences and notices. There is no corporate legal entity behind the project beyond the individual maintainer and project authors, and the software is free and open source with no ads, bundled software or subscription. More than one licence - see the record.
- veraPDF Dual-licensed GPL-3.0-or-later or MPL-2.0, per the project site and veraPDF-library README; GitHub's licence API reports GPL-3.0 only and understates the choice. The tool is free/open source; no hosted service or account is required. Java 8, 11, 17 or 21 is required; the installer runs on Windows/macOS/Linux. More than one licence - see the record.
- Xournal++ GPL-2.0. The repository LICENSE is the GNU General Public License version 2, and GitHub metadata identifies GPL-2.0; the AUTHORS file credits the Xournal++ developer team and community contributors. This is a community project, not an operating company. No paid tier, account or hosted service is offered for the desktop application.
AGPL - 10 copyleft
Network copyleft. The GPL obligation extends to users who reach it over a network, so running it as a service is enough to trigger it. This is the group that catches people out, and the commercial-licence escape is usually available.
- Documenso Open-source Community Edition under AGPL-3.0, with separate commercial self-hosted Business and Enterprise licences and hosted cloud plans. The Community Edition is free; the Business Edition is a fixed yearly licence for production use; Enterprise is tailored/quote-based with SLAs and priority support. Hosted cloud is Free (5 documents/month), Individual USD 25/month, Teams USD 40/month including five users (additional users USD 8/month), and Platform USD 250/month. No GBP price is verified, so priceFromGbp remains null. The cloud and self-hosted editions have different deployment and support terms; the hosted cloud is not the AGPL Community Edition.
- DocuSeal AGPL-3.0 with Section 7(b) additional terms
- Ghostscript AGPL-3.0, dual-licensed with a commercial licence from Artifex
- MuPDF (mutool) AGPL-3.0-or-later or commercial. The MuPDF source headers and licence documentation say MuPDF is licensed under the GNU Affero General Public License, version 3 or later, and that a commercial licence is available from Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco, CA 94129, USA, for users who cannot comply with the AGPL. The licence file says the software is provided as-is with no warranty and directs commercial enquiries to Artifex. No commercial price is published; pricing routes through Artifex sales. The current stable release tag is 1.28.5, dated 25 September 2026, and the master branch version header is 1.29.0 development, which is not a released version. mutool is the command-line program bundled with the MuPDF C library; the library and the command-line tool are separate surfaces but share the same source and licence.
- MuPDF.js AGPL-3.0-or-later or commercial. The official npm package `mupdf` is published under AGPL-3.0-or-later, and the README badges the project as AGPL or Commercial. Artifex's licensing page says most of its products are dual-licensed under the GNU AGPLv3 or commercial licence agreements, with commercial OEM and subscription options charged per copy with a quarterly minimum fee and no published figures; the page identifies Artifex Software Inc. as the company but does not publish a street address. No price is asserted. The official package is `mupdf`; the older community package `mupdf-js` with a hyphen is deprecated.
- OCRmyPDF MPL-2.0 for the OCRmyPDF project itself. Current PyPI metadata for 17.13.0 requires Python >=3.11 and lists fpdf2, img2pdf, packaging, pdfminer.six, pikepdf[pdfa], Pillow, pluggy, pydantic, pypdfium2, rich, typing-extensions and uharfbuzz as dependencies; Tesseract is an external OCR dependency. Ghostscript is optional/alternative depending on the rasterizer, and its AGPL-3.0 licence matters if it is installed or redistributed. The bundled Flask/Streamlit demo is not a hosted service. More than one licence - see the record.
- PDFsharp AGPL-3.0-only or commercial. The current NuGet packages for PDFsharp 6.5.0 and 7.0.0-preview-2 declare AGPL-3.0-only, and the current documentation, GitHub README and pdfsharp.com support page say the libraries are published under the free AGPL licence with a separate commercial licence available from empira Software GmbH. The current MigraDoc 6.5.0 package is also AGPL-3.0-only. The earlier MIT value applies to an older line and is stale for the current stable package. No commercial price is published; commercial licensing and support route through empira. The libraries are open source under the AGPL path, and no hosted service is involved. More than one licence - see the record.
- PyMuPDF AGPL-3.0 or commercial, dual-licensed. The documentation says PyMuPDF and MuPDF are available under both the open-source AGPL and commercial licence agreements, and names Artifex as the exclusive commercial licensing agent for MuPDF. The PyPI metadata describes the licence as Dual Licensed - GNU AFFERO GPL 3.0 or Artifex Commercial License, and the documentation gives Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States as the contact. No commercial price is published on the pages read, so none is recorded. PyMuPDF Pro, which adds Office document formats, and PyMuPDF4LLM are separate products in the suite rather than part of the standard library. More than one licence - see the record.
- Tabula MIT for the Tabula application and tabula-java engine code: the app LICENSE.md is copyright 2012-2020 Manuel Aristarán under MIT, and the engine LICENSE is copyright 2014-2020 Manuel Aristarán under MIT. The distributed application is not MIT-only: build/dist-LICENSE.txt and NOTICE.txt record bundled third-party components with their own terms, including Apache PDFBox 1.8.0 under Apache-2.0, an AGPL-licensed component and other MIT/Apache notices. The engine's current pom.xml references a newer PDFBox dependency than the one bundled in the 2018 app release. No paid tier or hosted service exists. More than one licence - see the record.
- Vivliostyle AGPL-3.0
What this page cannot tell you
The group is our reading of a free-text field; the field is the fact. That is why every tool above prints its licence exactly as the record holds it. Where a record names more than one licence, the group is the first one, which is the tool's own - and anything after a separator is a component or a dependency.
A dependency can carry a different licence from the tool. OCRmyPDF is MPL-2.0 and bundles Ghostscript, which is AGPLv3. That is recorded on its own page, and a licence audit of a product has to follow the dependencies rather than stop at the top line.
This is not legal advice, and it is deliberately not a summary you can act on for a specific product. It is the fact that decides which conversation to have. Each tool's page carries the vendor's own licence wording, and the method page explains what these records do and do not prove.
Related guides
- Which PDF tools really redact
Some tools delete the content you mark and some only draw over it, and the two look identical on screen.
- Checking a PDF for accessibility
What PDF/UA, WCAG, the Matterhorn Protocol and Section 508 actually are, why checking a document is not the same as fixing it, and which tools check, which repair, and which build tagged output in the first place.
- Which PDF tools keep your file on your machine
Offline PDF tools, and the difference between a tool we watched keep the file on the device, one whose vendor claims it does, and one that sends it to a server.