Tablas vs texto plano: Por qué importa
Antes de elegir un método, verifique qué tipo de datos contiene su PDF. El enfoque depende completamente de la estructura del PDF:
| Tipo de PDF | Qué contiene | Mejor método |
|---|---|---|
| Tablas nativas | PDF basado en texto con bordes de tabla visibles y líneas de cuadrícula | Cualquier método — CleverUtils es el más rápido |
| Tablas sin bordes | Columnas alineadas por espaciado, sin cuadrícula visible | Python (pdfplumber) para mayor precisión |
| PDF escaneado | Imagen de una página impresa (sin texto seleccionable) | Primero OCR (solo texto, sin estructura de tabla) |
| Contenido mixto | Tablas + párrafos + encabezados en la misma página | Python para extracción selectiva |
Prueba rápida: abra su PDF e intente seleccionar texto con el ratón. Si puede resaltar palabras sueltas, es un PDF nativo (basado en texto). Si toda la página se selecciona como un solo bloque, es una imagen escaneada — necesitará OCR. Si lo que necesita es el texto plano y no una tabla, consulte cómo extraer el texto de un PDF.
Método 1: Convertir en línea con CleverUtils
La opción más rápida para la mayoría de usuarios. CleverUtils extrae celda por celda las tablas con líneas de cuadrícula. Las páginas sin ese tipo de tablas se exportan línea por línea en una sola columna, y los PDF escaneados pasan automáticamente por OCR. Sin instalación y sin necesidad de cuenta.
- Vaya a cleverutils.com/pdf-to-csv
- Cargue su PDF — arrastre y suelte, o haga clic en « Elegir archivo PDF ». Máx. 100 MB.
- Los PDF escaneados no requieren ningún paso adicional: si no se encuentra texto, las 10 primeras páginas se leen con OCR en inglés, una línea por fila.
- Haga clic en « Convertir a CSV » — la conversión tarda unos segundos en la mayoría de archivos.
- Descargue el CSV — ábralo en Excel o Google Sheets, o impórtelo en su base de datos.
CleverUtils procesa todas las páginas de su PDF y combina las filas extraídas en un único archivo CSV en UTF-8. Los archivos se cifran durante la transferencia y se eliminan automáticamente en 2 horas.
Método 2: Python con pdfplumber
pdfplumber es la mejor biblioteca Python para extraer tablas de PDFs. Entiende tablas con y sin bordes, le da coordenadas para cada carácter, y le permite ajustar parámetros de extracción.
Instalar pdfplumber
pip install pdfplumber
Extracción básica de tablas
Este script extrae todas las tablas de cada página de un PDF y las escribe en un archivo CSV:
import pdfplumber
import csv
with pdfplumber.open("invoice.pdf") as pdf:
all_rows = []
for page in pdf.pages:
table = page.extract_table()
if table:
all_rows.extend(table)
with open("output.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerows(all_rows)
print(f"Extracted {len(all_rows)} rows to output.csv")
Manejo de tablas sin bordes
Cuando las tablas no tienen bordes visibles, pdfplumber aún puede detectar columnas utilizando posiciones de caracteres. Use extract_table() con configuración personalizada:
# Para PDFs sin bordes de tabla visibles
table_settings = {
"vertical_strategy": "text",
"horizontal_strategy": "text",
"snap_y_tolerance": 5,
"intersection_x_tolerance": 15,
}
with pdfplumber.open("report.pdf") as pdf:
page = pdf.pages[0]
table = page.extract_table(table_settings)
for row in table:
print(row)
Convertir múltiples PDFs por lotes
import pdfplumber
import csv
from pathlib import Path
for pdf_file in Path("./invoices").glob("*.pdf"):
csv_path = pdf_file.with_suffix(".csv")
with pdfplumber.open(pdf_file) as pdf:
rows = []
for page in pdf.pages:
table = page.extract_table()
if table:
rows.extend(table)
with open(csv_path, "w", newline="") as f:
csv.writer(f).writerows(rows)
print(f"{pdf_file.name} -> {csv_path.name} ({len(rows)} rows)")
Método 3: Microsoft Excel (Obtener datos)
Microsoft 365 (Excel para 365) puede importar archivos PDF directamente usando la función Power Query / Obtener datos. Esta opción no está disponible en Excel 2016 o 2019 independiente — requiere una suscripción activa a Microsoft 365. Funciona bien para tablas simples y bien estructuradas.
- Abra Excel y cree un nuevo libro en blanco.
- Vaya a Datos → Obtener datos → Desde archivo → Desde PDF.
- Seleccione su PDF del navegador de archivos.
- Elija la(s) tabla(s) que desea importar desde el panel Navegador. Excel mostrará una vista previa de cada tabla detectada.
- Haga clic en « Cargar » para importar los datos en su hoja de cálculo.
- Guardar como CSV: Archivo → Guardar como → elija « CSV (delimitado por comas) (*.csv) » como formato.
Limitación: la importación de PDF en Excel funciona mejor con tablas simples y delimitadas. Tiene dificultades con diseños multicolumna, celdas combinadas y tablas sin bordes. Para PDF complejos, use CleverUtils o Python en su lugar.
Método 4: Google Sheets
Google Sheets no importa PDFs directamente, pero puede usar el OCR integrado de Google Drive para extraer el texto primero, luego copiarlo en Sheets.
- Cargue el PDF en Google Drive.
- Haga clic derecho en el PDF → Abrir con → Google Docs. Google usará OCR en el archivo y lo convertirá a un documento editable.
- Seleccione los datos de la tabla en el Google Doc y cópielos (Ctrl+C / Cmd+C).
- Abra una nueva Google Sheet y pegue (Ctrl+V / Cmd+V). Los datos llenarán las celdas.
- Limpie los datos — ajuste anchos de columna, elimine filas adicionales, corrija errores de OCR.
- Descargue como CSV: Archivo → Descargar → Valores separados por comas (.csv).
Consejo: El OCR de Google funciona sorprendentemente bien para PDF escaneados. Pero la estructura de la tabla puede no sobrevivir al paso de copiar-pegar intacta. Para mejores resultados con datos tabulares, use el convertidor directo PDF a CSV de CleverUtils.
Comparación de métodos
| Característica | CleverUtils | Python | Excel | Google Sheets |
|---|---|---|---|---|
| Dificultad | Fácil | Avanzado | Medio | Fácil |
| Instalación | Ninguna (navegador) | Python + pip | Microsoft 365 | Ninguna (navegador) |
| Tablas con bordes | Excelente | Excelente | Bueno | Aceptable |
| Tablas sin bordes | Malo (una columna por línea) | Excelente | Malo | Malo |
| PDF escaneados (OCR) | Automático (inglés, 10 páginas, solo texto) | Con pytesseract | No compatible | Vía Google Drive |
| Procesamiento por lotes | Un archivo a la vez | Ilimitado | Un archivo a la vez | Un archivo a la vez |
| Ideal para | Conversiones puntuales rápidas | Automatización y PDF complejos | Usuarios de Excel con tablas sencillas | Extracción rápida con OCR |
Consejos para una salida CSV limpia
- Verifique la fila de encabezado. Algunos PDF tienen encabezados multilínea que se dividen en filas CSV separadas. Después de la conversión, verifique que sus encabezados de columna estén en una sola fila.
- Cuidado con las celdas combinadas. Las tablas PDF a menudo combinan celdas para títulos de grupo. Estos suelen convertirse en celdas vacías en CSV. Complételos manualmente o con un script después de la extracción.
- Maneje caracteres especiales. Las comas, comillas y saltos de línea dentro de valores de celda pueden romper el análisis de CSV. Los buenos convertidores (CleverUtils, pdfplumber) manejan el escape automáticamente. Si el suyo no, envuelva los valores entre comillas dobles.
- La codificación importa. Use codificación UTF-8 al guardar CSV para preservar caracteres acentuados, símbolos de moneda y texto no latino. En Python:
open("out.csv", "w", encoding="utf-8-sig")(el-sigañade una BOM que ayuda a Excel a detectar UTF-8). - Tablas multipágina. Cuando una tabla abarca múltiples páginas PDF, algunas herramientas extraen cada página como una tabla separada. En Python, omita la fila de encabezado en páginas posteriores para evitar duplicados.
Problemas comunes y soluciones
| Problema | Causa | Solución |
|---|---|---|
| Salida CSV vacía | PDF escaneado (basado en imagen) | CleverUtils aplica OCR automáticamente; en Python, use pytesseract |
| Todos los datos en una columna | Excel abrió el CSV con un delimitador incorrecto | Use Datos → Texto en columnas → Delimitados → Coma |
| Columnas desalineadas | Tabla sin bordes con espaciado irregular | Use pdfplumber con vertical_strategy: "text" |
| Caracteres ilegibles | Codificación incorrecta (normalmente Latin-1 frente a UTF-8) | Ábralo en un editor de texto y guárdelo como UTF-8 |
| Encabezados duplicados | Tabla de varias páginas con encabezados repetidos | En Python, omita la fila 0 en las páginas posteriores a la primera |
Adobe Acrobat y extractos bancarios
Adobe Acrobat
Acrobat Pro exporta las tablas de un PDF a Excel, no directamente a CSV: use Exportar PDF → Hoja de cálculo → Libro de Microsoft Excel, abra el archivo en Excel y guárdelo como CSV UTF-8.
Extractos bancarios y de tarjetas de crédito
- Revise primero su banca online: muchos bancos permiten descargar los movimientos directamente en CSV, lo que evita errores de conversión.
- Si solo tiene el PDF, compruebe que el texto se puede seleccionar. Los extractos basados en texto se convierten bien; los escaneados necesitan OCR y una revisión cuidadosa.
- Después de convertir, compare los totales del CSV con los del extracto y corrija las fechas y los signos negativos antes de importarlo en su software de contabilidad.