Convertiste un PDF a Markdown y las tablas salieron mal. Normalmente no es culpa de cómo hiciste la conversión: el propio PDF no guarda sus tablas visibles como tablas. Este artículo explica el mecanismo, muestra qué ocurrió realmente en 7 documentos que medimos y qué hacer cuando una tabla sale rota.
La mayoría de los PDF no guardan una tabla visible como tabla
Un PDF describe cómo pintar una página, no cómo está organizado el documento. El contenido de cada página vive en un content stream, y lo que hay ahí es una secuencia de operadores de dibujo con sus operandos: coloca este glifo en esta posición, traza una línea aquí (capítulos de Graphics y Text de la referencia Adobe PDF 1.7Se abre en una pestaña nueva). Las líneas de una tabla son instrucciones de trazado. El contenido de las celdas son glifos colocados cerca de esas líneas. Nada estándar une ambas cosas.
Se ve igual de claro en lo que devuelven las bibliotecas que leen PDF. Un TextItem de getTextContent() en pdf.js lleva str, transform, width, height, hasEOL y campos parecidos: ningún índice de fila, ningún índice de columna, ninguna identidad de celda (documentación de la API de PDF.jsSe abre en una pestaña nueva). El conversor tiene que deducir la cuadrícula a partir de la posición de los glifos y de las líneas.
Hay una excepción. Un PDF etiquetado para accesibilidad sí puede llevar elementos de estructura reales: un elemento Table, filas TR y celdas TH o TD, con los atributos RowSpan y ColSpan para celdas combinadas (técnica PDF6 del W3C: Using table elements for table markup in PDF DocumentsSe abre en una pestaña nueva). Pero etiquetar es algo que decide quien crea el archivo. Nada garantiza que el PDF que tienes en el disco lo esté, y sin etiquetas el conversor vuelve a adivinar.
En 7 documentos, dos rutas de extracción fallaron en direcciones opuestas
Para ver cuánto cuesta adivinar, pasamos 7 documentos de características distintas — dos artículos académicos, un documento técnico gubernamental, un formulario fiscal, un informe estadístico denso, una presentación y un informe de banco central — por dos rutas que funcionan de forma diferente.
- Ruta de extracción de texto: pdf.js (pdfjs-dist 6.2.108) con pdf2md (@opendocsg/pdf2md 0.2.7). No tiene ningún paso de montaje de tablas.
- Ruta de inferencia de estructura: pdf-inspector (@firecrawl/pdf-inspector-wasm 0.1.3). Deduce la estructura de la tabla a partir de rectángulos, fuentes y coordenadas.
Medición del 2026-08-02 en un Apple M5 Pro con macOS (Darwin 25.5.0) y Node v26.3.1. Los 7 documentos contienen capa de texto; no hay ningún PDF escaneado en el conjunto. El script de descarga, el de medición y la salida en bruto están en el repositorio de este sitio, en scripts/benchmarks/pdf-table-extraction/.
| Tipo | Filas de tabla, ruta de texto | Filas de tabla, ruta de inferencia | Encabezados, ruta de texto | Encabezados, ruta de inferencia | |
|---|---|---|---|---|---|
| Attention Is All You Need | Artículo académico a dos columnas | 0 | 50 | 45 | 38 |
| BERT | Artículo académico a dos columnas | 0 | 106 | 27 | 42 |
| NIST Cybersecurity Framework 2.0 | Documento técnico con muchos diagramas | 0 | 45 | 3 | 27 |
| IRS Form 1040 (2025) | Formulario rellenable | 0 | 42 | 24 | 5 |
| Encuesta de Población Activa de Japón | Tablas estadísticas de varios niveles | 0 | 405 | 1360 | 6 |
| Resumen del Libro Blanco de las TIC 2025 | Diapositivas basadas en diagramas | 0 | 9 | 38 | 112 |
| Perspectivas económicas (Banco de Japón) | Informe de banco central a varias columnas | 0 | 19 | 211 | 1 |
Destacan dos cosas. La ruta de texto produjo cero filas de tabla en los 7 documentos, es decir, nunca construye una tabla. La ruta de inferencia siempre construye una, y el número de filas no dice nada sobre si es correcta.
El caso que lo demuestra es este. El informe de banco central a varias columnas se rompió por completo — su título y su texto acabaron dentro de celdas — y aun así las filas de tabla suponían 0,43 de su salida. El formulario fiscal, que sí tiene tablas de verdad, está en 0,45. Ningún umbral separa esos dos valores. Que salgan muchas filas de tabla no demuestra que la tabla se haya extraído bien.
Fallo 1 — la tabla se abandona y queda texto corrido
En el primer modo de fallo la tabla nunca aparece como tabla. El texto de las celdas sí se recoge, pero se pierden los límites de fila y columna, así que cifras y etiquetas quedan encadenadas como frases normales. Es lo que hizo la ruta de extracción de texto: cero filas de tabla en todos los documentos.
Este fallo tiene una ventaja: se ve enseguida. Una tabla que sencillamente falta donde debería haber una tabla es imposible de pasar por alto, y eso facilita la decisión de volver al original.
Conviene nombrar un efecto secundario. A veces las filas de la tabla se ascienden a encabezados. En el informe estadístico de varios niveles, la ruta de texto generó 1360 encabezados; un recuento manual sitúa los encabezados reales en torno a 4. Si tu índice pasa de golpe a tener cientos de entradas, esta es la causa.
Fallo 2 — sale una tabla, pero las celdas están mal asignadas
El segundo modo de fallo produce una tabla Markdown válida cuyos valores están en las celdas equivocadas. Es lo que hizo la ruta de inferencia de estructura. El informe estadístico salió como 405 filas de tabla, con varios años de cifras colapsados en una sola celda.
|15~ 64歳 6625 5878 6678 5893 6732 5912 …|15~ 24歳 595|25~ 34歳 1168|
Cada bloque de esa línea debería ser una fila con un grupo de edad y una cifra por año. En la salida, seis cifras de años distintos quedaron dentro de la misma celda.
Este es el fallo peligroso. Las barras verticales y la fila separadora están bien formadas, así que se renderiza correctamente y se pega tal cual en un documento. Un valor desplazado una columna es invisible para cualquiera que no tenga el original delante. Está roto sin parecerlo, y por eso es un problema distinto del fallo 1.
Los diagramas y el texto a varias columnas pueden detectarse como tablas
La inferencia también se dispara con cosas que no son tablas. De las mediciones salieron dos casos concretos.
En NIST Cybersecurity Framework 2.0, el texto colocado dentro del diagrama circular del CSF Core (Fig. 1) se emitió como tabla, y además perdió las letras iniciales:
| Fig. 1. CSF Core structure |||
| --- | --- | --- |
| DENTIFY | ROTECT | ETECT ESPOND |
Las etiquetas reales son IDENTIFY, PROTECT, DETECT y RESPOND. El texto dispuesto siguiendo la curva del anillo se partió y el primer carácter de cada etiqueta se trató como un elemento aparte, dejando palabras sin significado.
El segundo caso es un documento entero convertido en tabla. En el informe de banco central a varias columnas, el título y el cuerpo del texto acabaron dentro de celdas:
|||||2025 年5月1日|
| --- | --- | --- | --- | --- |
||【基本的見解】|1|経済・物価情勢の展望(2025 年4月) <概要>|日本銀行|
La ruta de inferencia produjo exactamente 1 encabezado en ese documento. Una maquetación a varias columnas se leyó como una única tabla con varias columnas.
Qué roturas se arreglan cambiando de método y cuáles no
Que merezca la pena probar otro método de conversión depende del fallo que te haya tocado.
| Síntoma | Causa probable | Qué hacer después |
|---|---|---|
| No aparece ninguna tabla | La ruta usada no monta tablas | Merece la pena probar un método que infiera estructura |
| Salen tablas pero con celdas desplazadas | La inferencia por coordenadas falló | Otro método probablemente falle igual. Compara con el original y corrige a mano |
| Las etiquetas de un diagrama salieron como tabla | El texto de una figura se leyó como celdas | Descarta esa tabla y consulta la figura en el PDF |
| Todo el cuerpo del texto se volvió una tabla | Una maquetación a varias columnas se leyó como tabla | Cambia a una ruta que extraiga solo texto plano |
| No se extrajo ningún carácter | El PDF no tiene capa de texto | La conversión no ayuda. Hace falta OCR |
El patrón es este: que aparezca o no una tabla sí cambia según el método. Que la tabla que aparece sea correcta no cambia, porque sin estructura en el PDF de origen todos los métodos siguen deduciendo.
La forma fiable de saber qué fallo te toca a ti es probarlo. PDF a Markdown convierte dentro de tu navegador, así que puedes probar con un archivo que no debe salir de tu equipo.


Cómo arreglar una tabla rota
Comprueba siempre el resultado contra el original
Cuando un PDF contiene tablas, no uses el Markdown convertido antes de compararlo con la fuente. El fallo 2 no da ninguna señal visual, así que esta comparación es la única forma de detectarlo.
Un orden que funciona:
- Cuenta filas y columnas y confirma que coinciden con el original.
- Comprueba que las etiquetas de la cabecera aparecen en el mismo orden que en la fuente.
- Compara la primera y la última celda de cada fila con el original. El desplazamiento aparece antes en los extremos.
- Revisa una por una las zonas donde el original tenía celdas combinadas. Las tablas Markdown no pueden expresar una combinación, así que esas zonas se han transformado de alguna manera.
Reconstruye las tablas numéricas en lugar de parchearlas
En las tablas donde un desplazamiento de una celda cambia el significado — importes, totales, mediciones — reconstruir es más rápido y más seguro que reparar. Copia la tabla del original, pégala en una hoja de cálculo, expórtala como CSV y convierte ese CSV en tabla Markdown. Las relaciones entre celdas sobreviven al viaje.
Para la sintaxis en sí — dónde van las barras verticales, qué necesita la fila separadora, cómo funcionan los dos puntos de alineación, cómo escapar una barra dentro de una celda — consulta sintaxis de tablas Markdown en GitHub. Ten en cuenta que las tablas no forman parte del CommonMark base, sino de una extensión definida por GitHub Flavored Markdown (extensión de tablas de GFMSe abre en una pestaña nueva), así que conviene confirmar que el destino donde pegues el resultado las admite.
Cómo saber de antemano qué PDF tienen más probabilidades de sobrevivir
Esto es una lista de comprobación para reducir el riesgo, no una garantía.
Qué mirar antes de convertir
- ¿Puedes seleccionar con el ratón el texto de dentro de la tabla en un visor de PDF? Si no, no hay capa de texto y no hay nada que convertir.
- ¿La tabla tiene líneas de borde? Las tablas sin bordes dan menos pistas sobre dónde terminan las celdas.
- ¿La página es de una sola columna? Las maquetaciones a dos y tres columnas pueden leerse como tablas por sí mismas.
- ¿La tabla cruza un salto de página? Las tablas que continúan en otra página suelen salir como tablas separadas.
- ¿Hay celdas combinadas? Markdown no tiene equivalente, así que esas zonas siempre se transforman.
- ¿Hay diagramas o iconos mezclados dentro de la tabla? El texto de una figura puede acabar recogido como celdas.
De qué sospechar después
- Recuentos de columnas que cambian de una fila a otra. Es la inferencia de límites oscilando entre filas.
- Un número inusual de celdas vacías, o filas como
|||||que solo contienen separadores. - Un recuento de encabezados demasiado alto, señal de que líneas de texto se ascendieron a encabezados.
- Palabras que no son palabras: el caso
DENTIFYde arriba es el aspecto que tienen los glifos partidos. - Frases largas de texto corrido dentro de una celda.
Los PDF escaneados no contienen texto, así que no hay nada que convertir
Un PDF hecho escaneando papel es una imagen de cada página. Tú lees los caracteres, pero el archivo no los contiene como texto. En esa situación las tablas no son el problema: no hay ningún texto extraíble.
Lo que hace falta es transcripción (OCR), no conversión. La herramienta PDF de FormatArc no tiene OCR, así que informa de que el archivo no se puede convertir en lugar de devolver una salida construida a base de suposiciones. Saber que un archivo no se puede convertir es más seguro que recibir contenido que podría estar mal.
Para comprobar si tu archivo es un escaneo, prueba a arrastrar el ratón sobre el texto en un visor. Si no se selecciona nada, es una imagen.
Preguntas frecuentes
¿Otro conversor arreglará mis tablas?
Depende del fallo. Si no aparece ninguna tabla, cambiar a un método que infiera estructura al menos producirá tablas. Si las celdas están desplazadas, todos los métodos siguen deduciendo a partir de coordenadas mientras el PDF de origen no lleve estructura, así que no hay garantía.
¿Los PDF etiquetados evitan el problema?
Cuando el etiquetado existe y es correcto, se pueden leer Table, TR, TH y TD directamente en lugar de deducirlos. Pero el etiquetado lo decide quien produjo el PDF, no tú, y hasta un archivo etiquetado puede llevar una estructura que no coincida con lo que se ve en pantalla.
¿Puedo convertir un PDF escaneado?
Con FormatArc no. Los PDF escaneados no contienen texto y necesitan OCR, algo que esta herramienta no ofrece, así que informa de que el archivo no es convertible en lugar de intentarlo.
¿Hay alguna forma de extraer solo las tablas?
Aquí no existe una extracción solo de tablas, pero copiar la tabla del original, pasarla por una hoja de cálculo como CSV y convertir eso a Markdown conserva las relaciones entre celdas. Para tablas numéricas es el camino más fiable.
Resumen
Las tablas de un PDF se rompen en Markdown porque la mayoría de los PDF no llevan la tabla visible como estructura reutilizable, y el conversor tiene que deducir la cuadrícula a partir de la posición de glifos y líneas. En nuestras mediciones esa deducción falló en dos direcciones: una ruta no produjo ninguna tabla y la otra produjo tablas bien formadas con las celdas mal asignadas. La segunda es la que hay que vigilar, porque no parece rota, así que siempre que un PDF contenga tablas conviene comparar la salida convertida con el original.
Para ver cómo se comporta tu propio archivo, pásalo por PDF a Markdown. El archivo se procesa en tu navegador y nunca se sube a ningún sitio.