Community maintained fork of pdfminer - we fathom PDF
 
 
Go to file
Jeremy Singer-Vine 016239c146
Fix .paint_path handling of single line segments (#530)
* Fix .paint_path handling of single line segments

- Fixes typo ("ml" should have been "mlh")

- Removes if-statement that required individual line segments to be
  strictly horizontal or vertical.

* Treat 'ml'-shape paths as lines not curves

Althoguh 'mlh' is the canonical implementation for a single line
segment, 'ml' is fairly common.

Adds tests and sample PDF.

* Fix trailing whitespace

* Fix point-extraction from Beziér path commands

This commit corrects the manner in which "pts" are extracted from Beziér
path commands. See Table 4.9 of PDF reference manual, and new comments
in code for details. Previously, depending on whether the command (c,
v, or y) the code was extracting some combination of control points (not
on curve) and the actual points-on-curve.

This commit also refactors .paint_path, so that apply_matrix_pt is only
called in one place, and to treat the "h" command in a manner more
consistent with other path commands.

* Add comments to test_paint_path_quadrilaterals

* Parse rect-forming mllll paths as rects not curves

Now that .paint_path has been refactored, adding support for
rect-forming mllll paths requires no extra code, beyond a minor tweak to
the relevant elif statement.

* One changelog line with ref to mr

* Remove PDFLayoutAnalyzer._create_curve because implementation has become trivial due to refactoring

* Extract variables from if statement to make it easier to read

* Optimize imports order

* Trigger travis build

* Revert "Trigger travis build"

This reverts commit 41c05184

* Update travis badge

* Update travis badge

Co-authored-by: Pieter Marsman <pietermarsman@gmail.com>
2021-07-27 18:27:32 +02:00
.github Improve docs and github templates 2020-03-08 15:06:13 +01:00
cmaprsrc Fix typos 2016-09-13 16:25:09 +02:00
docs Remove explicit support for Python 3.4 and 3.5, adding tests for python 3.9 (#522) 2020-10-25 12:34:51 +01:00
pdfminer Fix .paint_path handling of single line segments (#530) 2021-07-27 18:27:32 +02:00
samples Fix .paint_path handling of single line segments (#530) 2021-07-27 18:27:32 +02:00
tests Fix .paint_path handling of single line segments (#530) 2021-07-27 18:27:32 +02:00
tools Fix not being able to pass boxes flow as None to pdf2txt (#479) 2020-10-10 15:17:04 +02:00
.gitignore Release 20201018 2020-10-18 12:57:26 +02:00
.travis.yml Fix cryptography build in travis cicd by upgrading distribution from Trusty Tahr to Focal Fossa (#585) 2021-02-20 10:32:07 +01:00
CHANGELOG.md Fix .paint_path handling of single line segments (#530) 2021-07-27 18:27:32 +02:00
CONTRIBUTING.md Remove explicit support for Python 3.4 and 3.5, adding tests for python 3.9 (#522) 2020-10-25 12:34:51 +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 Change pycryptodome dependency to the faster, smaller, and industry standard cryptography package (#456) 2020-07-20 22:00:54 +02:00
README.md Fix .paint_path handling of single line segments (#530) 2021-07-27 18:27:32 +02:00
setup.py Remove explicit support for Python 3.4 and 3.5, adding tests for python 3.9 (#522) 2020-10-25 12:34:51 +01:00
tox.ini Use python3.9 in tox config 2021-03-11 20:46:31 +01:00

README.md

pdfminer.six

Build Status 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 and Bitmaps).
  • 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

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

    python pdf2txt.py samples/simple1.pdf

Contributing

Be sure to read the contribution guidelines.