Documents and knowledge · Edition No. 62 · 26 Oct 2026

pdfminer/pdfminer.six

Reads text, layout, position, font and colour out of a PDF, in pure Python, and writes nothing back.

← Documents and knowledgeRead the whole edition →

7000 stars · MIT (named in the About sidebar and on the package index) · 20260107 (2026-01-07), settled from the package index; the repository sidebar lists no releases, and the recorded code date is 2026-03-13 · Track this in Scout

Reads text, layout, position, font and colour out of a PDF, in pure Python, and writes nothing back.

Verified26 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive30

Last code pushed 13 Mar 2026, 7 months before this check.

Releases50

Latest release 20260107 on 7 Jan 2026.

Maturity100

Public since August 2014, a little over 12 years.

Adoption77

7,045 stars and 1,049 forks.

Activity0

0 commits and 15 new issues in the last 90 days.

Community100

164 contributors. No pull requests merged in 90 days; changes go in directly.

Security40

No security policy file says how to report a problem. 2 published security advisories.

Licence MIT: permissive: use it for anything, keep the notice
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 26 Oct 2026 from the repository on GitHub. Covered in Edition 62.

▶Repo detailsthe review · specs · pros & cons · install

What it does

It parses the PDF directly rather than guessing from a picture of the page, so the text it returns is the text the author typed. For each element it can report the position, the font and the colour, and it performs automatic layout analysis to group characters into lines and blocks. It can write out plain text, HTML or hOCR. It handles Type1, TrueType, Type3 and CID fonts, Chinese, Japanese and Korean text, and vertical writing. It reads the table of contents, tagged content and form fields, and it handles RC4 and AES encrypted files. Embedded JPG, PNG, TIFF, JBIG2 and bitmap images can be extracted with an optional extra. It explicitly does not write, merge, split or encrypt PDFs — every feature it lists is about reading one.

Why it matters

Who it suits. Anyone who receives documents as PDFs and needs the numbers out of them: invoices, statements, reports, scientific papers. It suits a Python project that must not call out to a paid service, because everything happens on the machine running it. Skip it if the PDF is a scan, a photograph of paper with no text inside, because there is nothing for it to read and you need optical character recognition instead.

Verdict. The right default for reading, and it should be paired rather than used alone. Version 20260107 was published on 7 January 2026 and the last code landed on 13 March 2026, so it is maintained but not fast-moving — fair for a library whose job barely changes. The clean division of labour is worth remembering: use this to read, and py-pdf/pypdf to write, merge or split. For tables specifically, jsvine/pdfplumber is built on top of this one and will save you a day. Needs Python 3.10 or newer, and 221 open issues sit on the tracker.

Stars7000
LicenceMIT (named in the About sidebar and on the package index)
Latest20260107 (2026-01-07), settled from the package index; the repository sidebar lists no releases, and the recorded code date is 2026-03-13
Good
  • Reads the real text, not a guess from an image, so the output is exact.
  • Reports position, font and colour, which makes finding structure possible.
  • No service to call and no model to download. MIT licence.
Watch for
  • Read-only. It cannot write, merge, split or encrypt a PDF.
  • Useless on scanned pages, which contain a picture and no text.
  • Maintained slowly, with 221 open issues and a release roughly twice a year.
Similar repositories
Install
python3 -m venv venv
source venv/bin/activate
pip install "pdfminer.six[image]"
pdf2txt.py statement.pdf > statement.txt
Screenshots
pdfminer/pdfminer.six: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.