0

I try to use pdfminer.six to convert multiple pdfs in a directory to multiple .txt files using python 3.6.3

I got these error: ModuleNotFoundError: No module named 'pdfminer' when run the codes below. Or, when i run pdf2txt.py filename.pdf, it gives therenv: python\r: No such file or directory

I did some research regarding the issue. I have removed the original pdfminer from my pip, currently, it has only the pdfminer.six in my pip. Also, I am running python 3.6.3 on virtualenv.

Below is the code that I run:

from io import StringIO
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
import os
import sys, getopt

#converts pdf, returns its text content as a string
def convert(fname, pages=None):
    if not pages:
        pagenums = set()
    else:
        pagenums = set(pages)

    output = StringIO()
    manager = PDFResourceManager()
    converter = TextConverter(manager, output, laparams=LAParams())
    interpreter = PDFPageInterpreter(manager, converter)

    infile = file(fname, 'rb')
    for page in PDFPage.get_pages(infile, pagenums):
        interpreter.process_page(page)
    infile.close()
    converter.close()
    text = output.getvalue()
    output.close
    return text 

#converts all pdfs in directory pdfDir, saves all resulting txt files to txtdir
def convertMultiple(pdfDir, txtDir):
    if pdfDir == "": pdfDir = os.getcwd() + "\\" #if no pdfDir passed in 
    for pdf in os.listdir(pdfDir): #iterate through pdfs in pdf directory
        fileExtension = pdf.split(".")[-1]
        if fileExtension == "pdf":
            pdfFilename = pdfDir + pdf 
            text = convert(pdfFilename) #get string of text content of pdf
            textFilename = txtDir + pdf + ".txt"
            textFile = open(textFilename, "w") #make text file
            textFile.write(text) #write text to text file

pdfDir = "../../data/raw/"
txtDir = "../../data/interim/"
convertMultiple(pdfDir, txtDir)
mkl
  • 90,588
  • 15
  • 125
  • 265
Huy Le
  • 491
  • 2
  • 6
  • 11

2 Answers2

2

Install the package pdfminer3k for Python 3.X

Alexis
  • 21
  • 3
0

Download pdfminer3k tar.gz Unpack it Run python setup.py install

Kevin Kiwango
  • 111
  • 1
  • 4