diff --git a/code/py3_pToT.py b/code/py3_pToT.py new file mode 100644 index 0000000..6b719bd --- /dev/null +++ b/code/py3_pToT.py @@ -0,0 +1,70 @@ +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 +#from https://www.binpress.com/tutorial/manipulating-pdfs-with-python/167 +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 = open(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 + + +#i : info +#p : pdfDir +#t = txtDir +def main(argv): + pdfDir = "" + txtDir = "" + try: + opts, args = getopt.getopt(argv,"ip:t:") + except getopt.GetoptError: + print("pdfToT.py -p -t ") + sys.exit(2) + for opt, arg in opts: + if opt == "-i": + print("pdfToT.py -p -t ") + sys.exit() + elif opt == "-p": + pdfDir = arg + elif opt == "-t": + txtDir = arg + convertMultiple(pdfDir, txtDir) + +if __name__ == "__main__": + main(sys.argv[1:]) + + + +