Read PDF in Python and convert to text in PDF

Krishna picture Krishna · May 23, 2014 · Viewed 24k times · Source

I have used this code to convert pdf to text.

input1 = '//Home//Sai Krishna Dubagunta.pdf'
output = '//Home//Me.txt'
os.system(("pdftotext %s %s") %( input1, output))

I have created the Home directory and pasted the source file in it.

The output I get is

1

And no file with .txt was created. Where is the Problem?

Answer

Martin Thoma picture Martin Thoma · Jul 13, 2017

There are various Python packages to extract the text from a PDF with Python.

pdftotext

pdftotext package: Seems to work pretty well, but it has no options e.g. to extract bounding boxes

Installation

For Ubuntu:

sudo apt-get install build-essential libpoppler-cpp-dev pkg-config python-dev

Minimal Working Example

import pdftotext

with open("lorem_ipsum.pdf", "rb") as f:
    pdf = pdftotext.PDF(f)

# Iterate over all the pages
for page in pdf:
    print(page)

# Just read the second page
print(pdf.read(2))

# Or read all the text at once
print(pdf.read_all())

PDF miner

Install it with pip install pdfminer.six. A minimal working example is here.