From 30da4fc569ac3f8ca68cc32510b1b5cc10384bd1 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Sun, 26 Jul 2015 18:23:37 -0700 Subject: [PATCH] pageinfo: drop pdftotext and use PyPDF instead --- ocrmypdf/pageinfo.py | 14 ++++---------- ocrmypdf/test/test_pageinfo.py | 4 ++-- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/ocrmypdf/pageinfo.py b/ocrmypdf/pageinfo.py index 685a6c2e..c0c94be1 100644 --- a/ocrmypdf/pageinfo.py +++ b/ocrmypdf/pageinfo.py @@ -102,18 +102,12 @@ def _pdf_get_pageinfo(infile, page: int): pageinfo['pageno'] = page pageinfo['images'] = [] - p_pdftotext = Popen(['pdftotext', '-f', str(page), '-l', str(page), - '-raw', '-nopgbrk', infile, '-'], - close_fds=True, stdout=PIPE, stderr=PIPE, - universal_newlines=True) - text, _ = p_pdftotext.communicate() - if len(text.strip()) > 0: - pageinfo['has_text'] = True - else: - pageinfo['has_text'] = False - pdf = pypdf.PdfFileReader(infile) page = pdf.pages[page - 1] + + text = page.extractText() + pageinfo['has_text'] = (text.strip() != '') + width_pt = page['/MediaBox'][2] - page['/MediaBox'][0] height_pt = page['/MediaBox'][3] - page['/MediaBox'][1] pageinfo['width_inches'] = width_pt / Decimal(72.0) diff --git a/ocrmypdf/test/test_pageinfo.py b/ocrmypdf/test/test_pageinfo.py index a8087fd0..8fc87980 100644 --- a/ocrmypdf/test/test_pageinfo.py +++ b/ocrmypdf/test/test_pageinfo.py @@ -26,8 +26,8 @@ def test_single_page_text(): pdf = Canvas(filename, pagesize=(8*72, 6*72)) text = pdf.beginText() text.setFont('Helvetica', 12) - text.setTextOrigin(4*72, 3*72) - text.textLine("Methink’st thou art a general offence and every" + text.setTextOrigin(1*72, 3*72) + text.textLine("Methink'st thou art a general offence and every" " man should beat thee.") pdf.drawText(text) pdf.showPage()