Convertir pdf a txt

Buen dia comunidad:

Estoy queriendo compilar un codigo para convertir de PDF a texto pero al momento de hacer la conversion el resultado no sale como espero, sucede que la conversion no esta extrayendo la informacion de mayor relevancia que me servira para explotarla luego. Por ejemplo el texto me bota

nate. 10 / 18 / 2021 , en vez de date 10/18/2021
email: no me bota nada cuando si existe informacion
mas abajo hay otro dato
pate: 10 / 18 / 2021 en vez que sea date 10/18/2021

He aplicado diversas bibliotecas como pytesseract, pdfminner pdftotext, pdf2image y Open CV, pero todas extraen el texto de manera incompleta o con errores peores de los que muestro.

Este de aqui es el ultimo codigo que he usado:

import pytesseract
from pdf2image import convert_from_path

Configurar pytesseract

pytesseract.pytesseract.tesseract_cmd = “/usr/bin/tesseract”
pytesseract.pytesseract.tessdata_dir_config = ‘/usr/share/tesseract-ocr/4.00/tessdata’

Ruta del archivo PDF

pdf_path = “/content/drive/MyDrive/PDF/file.pdf”

Convertir PDF a imágenes de alta calidad

images = convert_from_path(pdf_path, dpi=300, fmt=“PNG”, thread_count=4)

Extraer texto de las imágenes

texts = [pytesseract.image_to_string(img, lang=“eng”, config=“–oem 1 --psm 11”) for img in images]

Guardar el texto extraído en un archivo de texto

with open(“texto_extraido2.txt”, “w”) as f:
for i, text in enumerate(texts):
f.write(f"Texto de la página {i + 1}:\n{text}\n\n")

Sin embargo cuando uso los conversores en linea de PDF a Texto la conversacion sale muy bien casi perfecta sin los errores que presento en mis codigos. Aqui les adjunto el pdf que quiero convertir a texto y los resultados que obtengo de mi codigo y del conversor en linea.

file.txt / resultado del conversor en linea

code1.txt

Este es el PDF que quiero convertir
file.pdf

Hola! El problema básico que tenés es que la estructura interna de un PDF es MUY distinta a lo que se “ve” al mostrarlo.

Por ejemplo, en tu PDF dice Client Name: Craig Gaunya Gaunya, y realmente no hay garantía que Client Name: y Craig Gaunya Gaunya estén contiguos internamente en el archivo. Ni siquiera Client y Name:!!

Hace unos años yo tuve buena experiencia usando pdfminer porque me daba los “objetos texto” con sus posiciones, entonces yo podía ver cuales estaban “a la misma altura” y después dilucidar si uno estaba a la izquierda del otro, etc. Pero hay que laburarlo bien a bajo nivel.

Espero que te sirva, saludos,

1 me gusta

Hola Facundo,

Buen dia. Gracias por tu respuesta. A pesar de que he usado pdfminer el resultado me sale bien pero ahora con la diferencia de que los campos contiguios que mencionaste lineas arriba no estan aparience completos. Me explico el pdf dice Client Name: Craig Gaunya Gaunya , en este caso solo aparece Client Name: , en blanco. De la misma manera sucede con varios campos los cuales deberian tener informacion completa.