pdfwords
Copyright 2026 Quan Dang

This product is licensed under the Apache License, Version 2.0 (see LICENSE).

This software uses, at runtime, the following third-party components, which are not part of
this repository and are distributed under their own licences:

  * PDFium - https://pdfium.googlesource.com/pdfium/
    Copyright 2014 The PDFium Authors. BSD 3-Clause / Apache-2.0 licences.
    Prebuilt binaries by https://github.com/bblanchon/pdfium-binaries (as shipped in pypdfium2).

  * pypdfium2 - https://github.com/pypdfium2-team/pypdfium2
    Copyright geisserml and contributors. Apache-2.0 OR BSD-3-Clause.

Optional editing support (the "edit" extra) uses, when installed:
  * pypdf - https://github.com/py-pdf/pypdf - BSD 3-Clause.
  * fontTools - https://github.com/fonttools/fonttools - MIT.
  * Pillow - https://github.com/python-pillow/Pillow - MIT-CMU (HPND).

The Rust crates depend on libloading (ISC), regex (MIT/Apache-2.0), unicode-bidi
(MIT/Apache-2.0), unicode-general-category (Apache-2.0) and PyO3 (MIT/Apache-2.0).

Test fixtures (tests/fixtures/):
  * irs_w9.pdf - IRS Form W-9 (Rev. March 2024), a work of the United States Government
    (public domain, 17 U.S.C. 105).
  * simple_text.pdf - generated by the pdfwords authors; embeds a subset of the
    Charis SIL font (SIL Open Font License 1.1).
  * rot90.pdf, synthetic.pdf/.json - generated by the pdfwords authors (Apache-2.0).
Other test documents are downloaded from their original sources by tools/fetch_test_pdfs.py and
are not redistributed.

pdfwords.compat.pdftext reproduces the public API and output schema of pdftext
(https://github.com/datalab-to/pdftext, Copyright Vik Paruchuri, Apache-2.0). It is an
independent implementation on pdfwords' engine; no pdftext code is included.

pdfwords.compat.pdf2image reproduces the public API of pdf2image
(https://github.com/Belval/pdf2image, Copyright Edouard Belval, MIT). It is an independent
implementation on PDFium; no pdf2image code is included and poppler is not used.

Optional visual debugging (the "debug" extra) uses Pillow (MIT-CMU / HPND) when installed.

The output format is designed to be compatible with PyMuPDF's Page.get_text(). pdfwords is not
affiliated with Artifex Software or the PyMuPDF project and contains no MuPDF/PyMuPDF code.
