Extracción de Texto de PDF
Usa esta habilidad cuando un flujo de trabajo necesite texto legible por máquina de un PDF digital antes de resumir, clasificar o realizar extracción estructurada. El asistente utiliza bibliotecas Python puras para PDF cuando están disponibles e incluye un detector de tablas simple basado en líneas para facilitar la limpieza posterior.
Cuándo invocar
- El usuario dice: "extrae el texto de este PDF", "alimenta un PDF a la IA", "saca las tablas de este informe", "lee este estado de cuenta".
- El PDF ya contiene texto seleccionable y no requiere OCR.
Cuándo NO invocar
- El PDF es una imagen escaneada; usa en su lugar un flujo de trabajo con OCR.
- El usuario necesita una reconstrucción de tabla con celdas fusionadas y fidelidad de diseño exacta.
Ejemplo concreto
Entrada del usuario:
Extrae el texto y las tablas aproximadas de este PDF para que Gemini pueda resumirlo.
Salida:
# Copia assets/extract.py en tu proyecto, luego:
from extract import extract_pdf
doc = extract_pdf("downloads/report.pdf")
print(doc["text"][:2000])
for table in doc["tables"]:
print(table["page"], table["rows"][:3])
Instala pypdf o pdfminer.six en el proyecto de destino. No se requiere ningún binario OCR, y el asistente falla claramente cuando el PDF no tiene texto extraíble.
Patrón a aplicar
- Prioriza la extracción de texto digital primero; no añadas OCR a menos que la fuente esté escaneada.
- Conserva los límites de página para que las instrucciones posteriores puedan citar números de página.
- Mantén la extracción de tablas simple: divide las filas por tabulaciones o espacios repetidos, luego deja que un paso de esquema posterior normalice las columnas.
- Limita el texto enviado a un LLM por página/rango cuando el PDF sea extenso.
- Falla con claridad cuando no se encuentre texto, en lugar de enviar un prompt vacío al flujo posterior.
Referencia: assets/extract.py.
Fuente
Destilado del uso en producción en los proyectos de automatización del autor. v1.0.0. Ver también: [[gemini-structured-output]], [[csv-report-writer]], [[s3-uploader]].
→ Construye el bot completo y ejecutable con Trawlkit.