Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 PyPDF2 processing problem

I've met problem using PyPDF2 module.
For some books the text extraction works, for others - not (i.e. text is empty)
page_number = 11
pageObj = pdfReader.getPage(page_number)
text = pageObj.extractText()
Any ideas ?


According to my observation it doesn't work for "Pack Publishing"
unfortunately this is the nature of PDF, a most data unfriendly format.
Yes, I've also found some confirmation of this statement on the web.
The workaround I'm discovering is as follows:
  1. extract a page from .pdf
  2. convert it to text using pdftotext
  3. finally read text page for processing

I've already tried pdftotext with "difficult" .pdf file in Linux terminal.
It works fine.
The problem is to use pdftotext in python.
I've tried to install pdftotext with this command:
sudo pip3 install pdftotext
But installation failed.
Any suggestions ?

Here is output:

Collecting pdftotext Downloading (113kB) 100% |████████████████████████████████| 122kB 1.6MB/s Installing collected packages: pdftotext Running install for pdftotext ... error Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-89f6lnjo/pdftotext/';f=getattr(tokenize, 'open', open)(__file__);'\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-jkqwtndx-record/install-record.txt --single-version-externally-managed --compile: running install running build running build_ext building 'pdftotext' extension creating build creating build/temp.linux-x86_64-3.6 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPOPPLER_CPP_AT_LEAST_0_30_0=0 -I/usr/include/python3.6m -c pdftotext.cpp -o build/temp.linux-x86_64-3.6/pdftotext.o -Wall pdftotext.cpp:3:10: fatal error: poppler/cpp/poppler-document.h: No such file or directory #include <poppler/cpp/poppler-document.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ---------------------------------------- Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-89f6lnjo/pdftotext/';f=getattr(tokenize, 'open', open)(__file__);'\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-jkqwtndx-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-89f6lnjo/pdftotext/

Problem with installing pdftotext is resolved by installing libpoppler-cpp-dev package:
sudo apt-get install libpoppler-cpp-dev

The method works fine:

import os
import pdftotext
from PyPDF2 import PdfFileReader, PdfFileWriter
path = '/media/aaa/WD/pdf/'

file_name_in = path + 'name_of_book.pdf'
file_name_out = path + 'extracted_page.pdf'

pdfFileObj_in = open(file_name_in, 'rb')
pdfReader = PdfFileReader(pdfFileObj_in)
page_number = 2
extracted_page = pdfReader.getPage(page_number)

pdfWriter = PdfFileWriter()

pdfFileObj_out = open(file_name_out, 'wb')


with open(file_name_out, 'rb') as f:
    pdf_text = pdftotext.PDF(f)
for page in pdf_text:
Nevertheless, it would be interesting to know how to avoid saving the extracted page on the hard disk, then to read it ... but rather use a extracted page object directly in pdftotext. The direct approach, that is, pdftotext(extracted_page) unfortunately does not work.
there is a blog on this subject here:
It will be nice to have something similar in Python ... and under Linux
pypdf2 was written in 'C' in 2005, and last released in 2016
FYI there's also which is a pure python version (which I haven't tried)

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Array problem in pylab module - Image processing bobfat 0 232 Dec-31-2019, 06:02 PM
Last Post: bobfat
  Problem with installing PyPDF2 Pavel_47 2 1,108 Nov-10-2019, 02:58 PM
Last Post: Pavel_47
  pyPDF2 nautilus columns modification AJBek 1 667 Jun-07-2019, 04:17 PM
Last Post: micseydel
  Using Pypdf2 write a string to a pdf file Pedroski55 6 5,810 Apr-11-2019, 11:10 PM
Last Post: snippsat
  Merging pdfs with PyPDF2 Pedroski55 0 1,153 Mar-07-2019, 11:58 PM
Last Post: Pedroski55
  PyPDF2 encrypt Truman 3 1,984 Jan-19-2019, 12:18 AM
Last Post: snippsat
  PyPDF2 Hanging When Trying to Open Corrupted PDF bmccollum 6 2,204 Nov-09-2018, 10:40 AM
Last Post: Larz60+
  Multi-processing - problem with running multiple *.py files at the same time Antonio 5 1,000 Sep-12-2018, 01:08 PM
Last Post: volcano63
  PyPDF2 or indentation issue siten0308 3 1,770 Apr-20-2018, 09:35 PM
Last Post: siten0308
  PyPDF2 script problem mepyyeti 7 1,888 Mar-13-2018, 11:52 AM
Last Post: buran

Forum Jump:

Users browsing this thread: 1 Guest(s)