python text-extraction pdfminer

¿Extraer texto de un archivo PDF usando PDFMiner en python?



text-extraction (2)

Este es un ejemplo práctico de extracción de texto de un archivo PDF con la versión actual de PDFMiner (septiembre de 2016)

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import TextConverter from pdfminer.layout import LAParams from pdfminer.pdfpage import PDFPage from io import StringIO def convert_pdf_to_txt(path): rsrcmgr = PDFResourceManager() retstr = StringIO() codec = ''utf-8'' laparams = LAParams() device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams) fp = open(path, ''rb'') interpreter = PDFPageInterpreter(rsrcmgr, device) password = "" maxpages = 0 caching = True pagenos=set() for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True): interpreter.process_page(page) text = retstr.getvalue() fp.close() device.close() retstr.close() return text

La estructura de PDFMiner ha cambiado recientemente, por lo que debería funcionar para extraer texto de los archivos PDF.

Editar : sigue funcionando desde el 7 de junio de 2018. Verificado en Python versión 3.x

Versión de Python 2.7

Estoy buscando documentación o ejemplos sobre cómo extraer texto de un archivo PDF usando PDFMiner con Python.

Parece que PDFMiner actualizó su API y todos los ejemplos relevantes que he encontrado contienen código obsoleto (las clases y los métodos han cambiado). Las bibliotecas que he encontrado que facilitan la tarea de extraer texto de un archivo PDF están usando la vieja sintaxis de PDFMiner, así que no estoy seguro de cómo hacerlo.

Tal como están las cosas, solo estoy mirando el código fuente para ver si puedo resolverlo.


excelente respuesta de DuckPuncher, para Python3 asegúrese de instalar pdfminer2 y hacer:

import io from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import TextConverter from pdfminer.layout import LAParams from pdfminer.pdfpage import PDFPage def convert_pdf_to_txt(path): rsrcmgr = PDFResourceManager() retstr = io.StringIO() codec = ''utf-8'' laparams = LAParams() device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams) fp = open(path, ''rb'') interpreter = PDFPageInterpreter(rsrcmgr, device) password = "" maxpages = 0 caching = True pagenos = set() for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password, caching=caching, check_extractable=True): interpreter.process_page(page) text = retstr.getvalue() fp.close() device.close() retstr.close() return text