¿Hay algún módulo de Python para convertir archivos PDF en texto? Probé una pieza de código ( mirror ) que se encuentra en Activestate que usa pypdf pero el texto generado no tenía espacio entre ellos y no sirvió de nada.
Esta pregunta fue publicada originalmente en el desbordamiento de pila por cnu pero se cerró.
Las bibliotecas python pdfminer2 o pdfminer3k / pdfminer.six para python 3 pueden extraer el texto de los archivos pdf que contienen texto (tenga en cuenta que los documentos escaneados almacenados como pdf no contendrán texto o un intento de OCR).
Incluye la pdf2txt.py
utilidad de línea de comandos para permitir un uso conveniente en la terminal.
Sin embargo, puede encontrar que vale la pena mirar pdf-scraper-with-ocr que proporciona una GUI que le permite seleccionar las regiones de un documento escaneado para convertir, las páginas para omitir, etc. luego las genera como imágenes y usa Tesseract para OCR las imágenes en campos con nombre para usted.
Dado que se basa en Python y Tesseract, ambos multiplataforma, debería funcionar en casi cualquier plataforma.
La forma más fácil de administrar pdf en python es PyPDF2 , también puede extraer texto y otra información como páginas, autor, creador ...
Dijiste que lo intentaste pypdf
pero es una versión desactualizada y este problema podría resolverse. Tal vez su problema sea con un archivo específico. Si PyPDF2
no resuelve su problema, ¿viste el comando Unix pdftotext
? ¿Te da una salida correcta?
He trabajado con dos módulos PDF: PyPDF2
ypdfminer.six
PDFminer.six es más confiable que PyPDF2 pero 6 veces más lento (temporizado).
Aquí hay un ejemplo de código de trabajo para PDFminer.six, la documentación es un poco escasa: https://stackoverflow.com/a/61857301/7483211
La única solución que me funcionó para contenido UTF-8: Apache Tika
from tika import parser
parsed = parser.from_file('/path/to/file.pdf')
print(parsed["content"])
PyPDF2 se mantiene nuevamente y recibió una mejora masiva de extracción de texto con PyPDF2==2.1.0
.
Instalarlo:pip install PyPDF2 --upgrade
from PyPDF2 import PdfReader
reader = PdfReader("example.pdf")
text = ""
for page in reader.pages:
text += page.extract_text() + "\n"
print(text)
Mi punto de referencia muestra que Tika / MuPDF / PDFium aún tienen una mejor calidad de extracción. Sin embargo, hay dos cosas importantes a considerar:
Puede usar GroupDocs.Conversion Cloud SDK for Python para convertir PDF a texto. También puede convertir otros formatos de archivo comunes a texto. Su plan de paquete gratuito proporciona 50 créditos gratis por mes.
Soy evangelista de desarrolladores en Aspose.
https://github.com/kermitt2/grobid + https://github.com/kermitt2/grobid-client-python :
Extracción y estructuración de texto completo a partir de artículos PDF, incluido un modelo para la segmentación general del documento y modelos para la estructuración del cuerpo del texto (párrafo, títulos de sección, leyenda de referencia, figura, tabla, etc.).
https://github.com/allenai/spv2 :
https://github.com/allenai/science-parse :
Science Parse analiza artículos científicos (en formato PDF) y los devuelve en forma estructurada. A partir de hoy, admite estos campos: […] Secciones (cada una con encabezado y cuerpo de texto).
Martín Tomas
franck dernoncourt