Community maintained fork of pdfminer - we fathom PDF
 
 
Go to file
Jeremy Singer-Vine f2c967f500
Ignore path constructors that do not begin with m (#749)
* Ignore path constructors that do not begin with  m

Per PDF Reference Section 4.4.1, "path construction operators may be
invoked in any sequence, but the first one invoked must be m or re to
begin a new subpath." Since pdfminer.six already converts all `re`
(rectangle) operators to their equivelent `mlllh` representation, paths
ingested by `.paint_path(...)` that do not begin with the `m` operator
are invalid.

In addition to the advantage of hewing to the PDF Reference, this change
also avoids the `ValueError: not enough values to unpack (expected 2,
got 1)` error raised by the ` pts = [apply_matrix_pt(self.ctm, pt) for
pt in raw_pts]` line in `converter.py` when parsing PDFs that
(erroneously) include `("h",)` paths.

* Update CHANGELOG.md

Co-authored-by: Pieter Marsman <pietermarsman@gmail.com>
2022-05-06 22:15:00 +02:00
.github Fix github actions tag regex 2022-03-19 21:10:02 +01:00
cmaprsrc Fix typos 2016-09-13 16:25:09 +02:00
docs Raise more specific error if Pillow cannot be imported (#714) 2022-02-22 20:20:17 +01:00
pdfminer Ignore path constructors that do not begin with m (#749) 2022-05-06 22:15:00 +02:00
samples Ignore empty characters when analyzing layout (#689) 2022-02-22 21:20:26 +01:00
tests Ignore path constructors that do not begin with m (#749) 2022-05-06 22:15:00 +02:00
tools Add github action for releasing to pypi if git tag is added. (#727) 2022-03-19 20:46:00 +01:00
.flake8 Check blackness in github actions (#711) 2022-02-11 22:46:51 +01:00
.gitignore Update development tools: travis ci to github actions, tox to nox, nose to pytest (#704) 2022-02-02 22:24:32 +01:00
CHANGELOG.md Ignore path constructors that do not begin with m (#749) 2022-05-06 22:15:00 +02:00
CONTRIBUTING.md Add github action for releasing to pypi if git tag is added. (#727) 2022-03-19 20:46:00 +01:00
LICENSE Added: LICENSE 2016-09-11 23:38:18 +09:00
MANIFEST.in Remove samples/ directory from source distribution to prevent downloading all pdf's when installing pdfminer.six (#364) 2020-01-24 12:36:02 +01:00
Makefile Add github action for releasing to pypi if git tag is added. (#727) 2022-03-19 20:46:00 +01:00
README.md Raise more specific error if Pillow cannot be imported (#714) 2022-02-22 20:20:17 +01:00
mypy.ini Use charset-normalizer instead of chardet (#744) 2022-04-20 21:42:50 +02:00
noxfile.py Check blackness in github actions (#711) 2022-02-11 22:46:51 +01:00
setup.py Use charset-normalizer instead of chardet (#744) 2022-04-20 21:42:50 +02:00

README.md

pdfminer.six

Continuous integration PyPI version gitter

We fathom PDF

Pdfminer.six is a community maintained fork of the original PDFMiner. It is a tool for extracting information from PDF documents. It focuses on getting and analyzing text data. Pdfminer.six extracts the text from a page directly from the sourcecode of the PDF. It can also be used to get the exact location, font or color of the text.

It is built in a modular way such that each component of pdfminer.six can be replaced easily. You can implement your own interpreter or rendering device that uses the power of pdfminer.six for other purposes than text analysis.

Check out the full documentation on Read the Docs.

Features

  • Written entirely in Python.
  • Parse, analyze, and convert PDF documents.
  • PDF-1.7 specification support. (well, almost).
  • CJK languages and vertical writing scripts support.
  • Various font types (Type1, TrueType, Type3, and CID) support.
  • Support for extracting images (JPG, JBIG2, Bitmaps).
  • Support for various compressions (ASCIIHexDecode, ASCII85Decode, LZWDecode, FlateDecode, RunLengthDecode, CCITTFaxDecode)
  • Support for RC4 and AES encryption.
  • Support for AcroForm interactive form extraction.
  • Table of contents extraction.
  • Tagged contents extraction.
  • Automatic layout analysis.

How to use

  • Install Python 3.6 or newer.

  • Install

    pip install pdfminer.six

  • (Optionally) install extra dependencies for extracting images.

    pip install 'pdfminer.six[image]

  • Use command-line interface to extract text from pdf:

    python pdf2txt.py samples/simple1.pdf

Contributing

Be sure to read the contribution guidelines.

Acknowledgement

This repository includes code from pyHanko ; the original license has been included here.