Independent guide. Not affiliated with the pdfplumber project or its maintainers.Official repository: jsvine/pdfplumber ↗

About

pdfplumber FAQ

Short, checked answers to the questions people ask before and after choosing pdfplumber. Each one links to the page with the detail.

Updated 2026-11-05

Most asked

Free? Yes, MIT licence, commercial use allowed. OCR? No: OCR first. Edit PDFs? No: use pypdf. AI? No, rule-based and deterministic. Official site? No: this is an independent guide; the project lives at github.com/jsvine/pdfplumber.

Licence and use

Is pdfplumber free and open source?

Yes. pdfplumber is released under the MIT licence by Jeremy Singer-Vine and contributors. You can use it, change it and ship it in open or closed products, for free. The only condition is to keep the copyright and licence notice with copies of the library.

Can I use it in a commercial or SaaS product?

Yes. MIT places no restriction on commercial use or network services. Its dependencies are permissively licensed too: pdfminer.six (MIT), Pillow (MIT-CMU), pypdfium2 (Apache-2.0 or BSD-3-Clause, wrapping Google’s BSD-licensed PDFium) and cryptography (Apache-2.0 or BSD). This is a real difference from PyMuPDF, which is AGPL-3.0 unless you buy a licence (comparison).

How do I cite pdfplumber in research?

The repository includes a CITATION.cff file; GitHub’s Cite this repository button turns it into BibTeX or APA. Cite the version you used (0.11.10 at the time of writing).

Safety

Is pdfplumber safe? Are there CVEs?

pdfplumber itself has no published vulnerabilities in the OSV database (checked 2026-11-04). Its PDF parser, pdfminer.six, had two in 2025, both in how it loads CMap font data:

Advisory Impact Fixed in pdfminer.six pdfplumber that includes the fix
CVE-2025-64512 (GHSA-wf5f-4jwr-ppcp) Code execution via a crafted PDF that makes the CMap loader unpickle an attacker-chosen file 20251107 0.11.8 and later
CVE-2025-70559 (GHSA-f83h-ghpp-7wcc) Local privilege escalation when a user-writable directory is on the CMap search path 20251230 0.11.9 and later

pdfplumber pins an exact pdfminer.six version, so upgrading pdfplumber upgrades the parser. Note the consequence of the Python version issue: on Python 3.9, pip installs pdfplumber 0.11.8 (fixes only the first advisory); on Python 3.8 it installs 0.11.5 with pdfminer.six 20231228 (fixes neither). Moving to Python 3.10 or newer is the security fix.

How should I handle untrusted PDFs?

PDF parsing is complex and malformed files can take a long time or a lot of memory. For uploads from the public:

  • Run extraction in a separate process or container with a timeout and a memory limit.
  • Process page by page and call page.close() (performance).
  • Catch pdfplumber.utils.exceptions.PdfminerException per file (error index).
  • Keep pdfplumber current and do not add writable directories to pdfminer.six’s CMap path.

What it does and does not do

Does pdfplumber use AI or machine learning?

No. It reads characters and vector graphics stored in the PDF and groups them using geometry: distances, alignments and intersections, controlled by tolerances you can see and change. The same file and settings always give the same output, and nothing is downloaded at run time. For model-based parsing, see AI parsers; for using pdfplumber output with LLMs, see AI and RAG.

Does it do OCR or read scanned PDFs?

No. A scanned page is an image with no characters. Detect those pages, run OCR (OCRmyPDF with Tesseract), then use pdfplumber on the result. Measured results and table recovery are on scanned PDFs and OCR.

Can it create, edit, merge or split PDFs?

No; pdfplumber only reads. Use pypdf for merging, splitting, rotating, encrypting and filling forms, and ReportLab to generate new PDFs. pypdf and pdfplumber work well together (examples).

Can it extract images?

It lists every image with its position and size, and can render pages or regions to images for debugging. Saving the embedded image bytes takes a few lines through pdfminer.six; see images.

Does it handle non-English text?

Yes, wherever the PDF stores Unicode text: accented Latin, Greek, Cyrillic, CJK and more. Right-to-left and vertical text need the direction options (extract text). Text from fonts without a Unicode map comes out as (cid:x) (why).

Versions and platforms

Which Python versions does it support?

pdfplumber 0.11.10 needs Python 3.10 or newer in practice (its pinned dependencies require it), and is tested by the project on 3.10 to 3.14. On 3.8 and 3.9, pip installs older releases. Details and measured results on install.

Does it work on Windows, macOS and Linux?

Yes. All dependencies ship prebuilt wheels for 64-bit Windows, macOS (Intel and Apple silicon) and Linux. We run every example on all three. On Windows on ARM, cryptography had no ARM64 wheel when we checked.

Is pdfplumber still maintained?

Yes. The latest release is 0.11.10 (2026-06-14), and the repository received commits in October 2026. Releases typically follow pdfminer.six updates and bug fixes, several per year. See releases.

Is there a pdfplumber for JavaScript, Java, .NET, R or Rust?

The official pdfplumber is Python only. What exists elsewhere:

  • In the browser: the real Python pdfplumber runs in WebAssembly via Pyodide; our Playground does exactly that.
  • Rust: an independent crate named pdfplumber on crates.io describes itself as a port; it is not part of the Python project.
  • JavaScript / Node: no port; pdf.js gives text with positions, and you can call Python from Node.
  • R: call the Python library through reticulate.
  • Java and .NET: no port; Tabula (Java) and PdfPig (.NET) cover similar ground.

About this site

Is pdfplumber.dev official?

No. pdfplumber.dev is an independent guide. It is not affiliated with, endorsed by or maintained by the pdfplumber project or its maintainers. The official repository, issue tracker and README are at github.com/jsvine/pdfplumber, and the package is on PyPI.

Why trust what this site says?

Every code example runs against pdfplumber 0.11.10 before it is published, and the output shown is the captured output. Our test workflow repeats the runs on Linux, Windows and macOS. Benchmarks list their machine, versions and scripts. When we are not sure, we say so. Found a mistake? Email hello@pdfplumber.dev. More on how we work.

Does this site have ads or track me?

There are no ads. We measure visits with Google Analytics (loaded through Google Tag Manager), which sets cookies; the privacy page says exactly what it collects and how to opt out. Tools such as the Playground run in your browser and never upload your files.