Desgrana Envíanos un documento

BetaLectura exacta de documentos oficiales

Todo lo que dice el documento. Y dónde lo dice.

Desgrana convierte decretos, resoluciones, convocatorias y pliegos en Markdown y JSON sin dejarse nada: tablas, sellos, bandas de verificación del margen y códigos QR, cada pieza con su página y su posición. En tu infraestructura, en una CPU.

Página 1 de un decreto ficticio del Ayuntamiento de Villaejemplo, con cinco piezas recuadradas: un sello de registro arriba a la derecha, una tabla con celdas combinadas, un código QR, la banda de verificación del margen izquierdo y la tabla de firmantes del pie
  • Sello#b4232c · 352°

    REGISTRO DE SALIDA
    03 oct 2026 · Nº 7712
  • Tabla5 × 3 · 2 combinadas

    CONCESIÓN DIRECTA
    AplicaciónObjetoImporte
    2026-4391-48000Programa de acogida, primer semestre43.394,84 €
    2026-4391-48001Programa de acogida, segundo semestre21.697,42 €
    Total concedido65.092,26 €
  • QRQR Code · decodificado

    https://sede.villaejemplo.example/verifica?csv=K7Q2-9XMB-4TLR
  • Margenizquierda · 90° · págs. 1–2

    Documento firmado electrónicamente. Código Seguro de Verificación (CSV): K7Q2-9XMB-4TLR. Verificable en la sede electrónica del Ayuntamiento de Villaejemplo.
Un decreto ficticio, separado por Desgrana. Lo que dice cada tarjeta es su salida real para esta página.
  • Sin GPUUna CPU basta, con PDFium y Tesseract.
  • 0 llamadasa terceros por defecto: tus documentos no salen de tu red.
  • Misma salidacon la misma entrada, siempre: sin modelos generativos por defecto.
  • Milisegundospor página con capa de texto. Las escaneadas pasan por OCR: segundos.
  • Decretos
  • Resoluciones
  • Convocatorias
  • Pliegos
  • Boletines oficiales
  • Formularios
  • Informes
  • Documentos escaneados

01El problema

Un PDF no guarda documentos. Guarda letras y dónde pintarlas.

Ni párrafos, ni tablas, ni sellos: trazos de texto en el orden en que se dibujaron. Léelo tal cual y el margen se mezcla con el cuerpo, las tablas se aplanan y lo que se repite en cada página se repite en tu texto. Desgrana reconstruye el documento.

La capa de texto del PDF, tal cualPDFium, sin análisis

Página 1

  1. Documento firmado electrónicamente. Código Seguro de Verificación (CSV): K7Q2-9XMB-4TLR. Verificable en la sede electrónica del Ayuntamiento de Villaejemplo.
  2. AYUNTAMIENTO DE VILLAEJEMPLO · ALCALDÍA Página 1 de 2
  3. REGISTRO DE SALIDA
  4. 03 oct 2026 · Nº 7712
  5. DECRETO Nº 2026/1184
  6. Visto el expediente 2026/GEN-3321 de concesión directa de una subvención nominativa a la
  7. Asociación Ejemplo de Acogida, y de conformidad con las bases de ejecución del presupuesto
  8. municipal vigente, así como con lo dispuesto en el artículo 22.2.a de la Ley 38/2003, de 17 de
  9. noviembre, General de Subvenciones,
  10. HE RESUELTO:
  11. PRIMERO.- Conceder a la Asociación Ejemplo de Acogida, con NIF G00000000, una subvención
  12. con cargo a la siguiente aplicación presupuestaria:
  13. CONCESIÓN DIRECTA
  14. Aplicación Objeto Importe
  15. 2026-4391-48000 Programa de acogida, primer semestre 43.394,84 €
  16. 2026-4391-48001 Programa de acogida, segundo semestre 21.697,42 €
  17. Total concedido 65.092,26 €
  18. SEGUNDO.- El pago se realizará por semestres vencidos, previa presentación de la justificación
  19. prevista en las bases.
  20. Código QR de verificación

Página 2

  1. Documento firmado electrónicamente. Código Seguro de Verificación (CSV): K7Q2-9XMB-4TLR. Verificable en la sede electrónica del Ayuntamiento de Villaejemplo.
  2. AYUNTAMIENTO DE VILLAEJEMPLO · ALCALDÍA Página 2 de 2
  3. TERCERO.- Notifíquese la presente resolución a la entidad beneficiaria, con indicación de los
  4. recursos que procedan, y publíquese en la sede electrónica y en la Base de Datos Nacional de
  5. Subvenciones. El acto administrativo dictado en el procedimiento de concesión de subvenciones se
  6. notificará a las personas interesadas, con indicación de los recursos que procedan, del órgano ante
  7. el que hubieran de presentarse y del plazo para interponerlos. La resolución pone fin a la vía
  8. administrativa y contra ella podrá interponerse recurso potestativo de reposición en el plazo de un
  9. mes.
  10. CUARTO.- Dar cuenta al Pleno en la próxima sesión que se celebre.
Lo que reconstruye DesgranaOrden de lectura, cada pieza con su tipo

Página 1

  1. CabeceraAYUNTAMIENTO DE VILLAEJEMPLO · ALCALDÍA Página 1 de 2págs. 1–2
  2. Título 1DECRETO Nº 2026/1184
  3. SelloREGISTRO DE SALIDA 03 oct 2026 · Nº 7712
  4. PárrafoVisto el expediente 2026/GEN-3321 de concesión directa de una subvención nominativa a la Asociación Ejemplo de Acogida, y de conformidad con las bases de ejecución del presupuesto municipal vigente, así como con lo dispuesto en el artículo 22.2.a de la Ley 38/2003, de 17 de noviembre, General de Subvenciones,
  5. Título 2HE RESUELTO:
  6. PárrafoPRIMERO.- Conceder a la Asociación Ejemplo de Acogida, con NIF G00000000, una subvención con cargo a la siguiente aplicación presupuestaria:
  7. TablaCONCESIÓN DIRECTA · 5 × 3 · celdas combinadas
  8. PárrafoSEGUNDO.- El pago se realizará por semestres vencidos, previa presentación de la justificación prevista en las bases.
  9. QRhttps://sede.villaejemplo.example/verifica?csv=K7Q2-9XMB-4TLR
  10. PárrafoCódigo QR de verificación
  11. MargenDocumento firmado electrónicamente. Código Seguro de Verificación (CSV): K7Q2-9XMB-4TLR. Verificable en la sede electrónica del Ayuntamiento de Villaejemplo.págs. 1–2

Página 2

  1. PárrafoTERCERO.- Notifíquese la presente resolución a la entidad beneficiaria, con indicación de los recursos que procedan, y publíquese en la sede electrónica y en la Base de Datos Nacional de Subvenciones. El acto administrativo dictado en el procedimiento de concesión de subvenciones se notificará a las personas interesadas, con indicación de los recursos que procedan, del órgano ante el que hubieran de presentarse y del plazo para interponerlos. La resolución pone fin a la vía administrativa y contra ella podrá interponerse recurso potestativo de reposición en el plazo de un mes.
  2. PárrafoCUARTO.- Dar cuenta al Pleno en la próxima sesión que se celebre.
  1. La banda del margen, con su código de verificación, sale la primera y se cuela en el cuerpo.
  2. Los firmantes del pie y el sello de registro aparecen antes que el título.
  3. La tabla pierde sus columnas y sus celdas combinadas: cada fila queda como una línea de palabras.
  4. El contenido del QR no está en la capa de texto: solo su pie.

02La salida

Lo que devuelve, sin retoques.

Pasa el ratón por la página o por la salida, o elige una pieza: cada bloque sabe de dónde viene. Markdown para leer, JSON para programar.

decreto.pdf Página 1 de 2 · 595 × 842 pt Salida real
La misma página del decreto ficticio, con las cinco piezas recuadradas en su color
> [!HEADER] repeated on pages 1–2
> AYUNTAMIENTO DE VILLAEJEMPLO · ALCALDÍA                Página 1 de 2

# DECRETO Nº 2026/1184

> [!STAMP] #b4232c · rotated 352° · top right
> **REGISTRO DE SALIDA**  
> 03 oct 2026 · Nº 7712

Visto el expediente 2026/GEN-3321 de concesión directa de una subvención nominativa a la Asociación Ejemplo de Acogida, y de conformidad con las bases de ejecución del presupuesto municipal vigente, así como con lo dispuesto en el artículo 22.2.a de la Ley 38/2003, de 17 de noviembre, General de Subvenciones,

## HE RESUELTO:

PRIMERO.- Conceder a la Asociación Ejemplo de Acogida, con NIF G00000000, una subvención con cargo a la siguiente aplicación presupuestaria:

<table>
  <tr><th colspan="3"><b>CONCESIÓN DIRECTA</b></th></tr>
  <tr><td><b>Aplicación</b></td><td><b>Objeto</b></td><td><b>Importe</b></td></tr>
  <tr><td>2026-4391-48000</td><td>Programa de acogida, primer semestre</td><td>43.394,84 €</td></tr>
  <tr><td>2026-4391-48001</td><td>Programa de acogida, segundo semestre</td><td>21.697,42 €</td></tr>
  <tr><td colspan="2"><b>Total concedido</b></td><td><b>65.092,26 €</b></td></tr>
</table>

SEGUNDO.- El pago se realizará por semestres vencidos, previa presentación de la justificación prevista en las bases.

> [!IMAGE] qr code · 60×60 pt · bottom left
> QR Code content: https://sede.villaejemplo.example/verifica?csv=K7Q2-9XMB-4TLR

Código QR de verificación

> [!MARGIN] left margin, rotated 90° (reads bottom to top) · repeated on pages 1–2
> Documento firmado electrónicamente. Código Seguro de Verificación (CSV): K7Q2-9XMB-4TLR. Verificable en la sede electrónica del Ayuntamiento de Villaejemplo.

> [!FOOTER] repeated on pages 1–2
> Este documento ha sido firmado electrónicamente. Compruebe su validez con el CSV.
>
> | **Firmado por** | **Cargo** | **Fecha** |
> |---|---|---|
> | Ana Pérez Ejemplo | ALCALDESA | 03/10/2026 09:15 |
> | Luis García Muestra | SECRETARIO | 03/10/2026 09:31 |

Documento ficticio. Es la salida real de Desgrana para la página 1. El JSON es un fragmento: solo el margen y el QR.

03Trazabilidad

Cada dato, con su fuente.

Cada bloque lleva su página y su posición en la página. Tu aplicación puede enseñar de dónde sale cada importe, plazo o requisito, y una persona puede comprobarlo en segundos.

10 puntos

Los pliegos de los pilotos de IA del Ayuntamiento de Zaragoza de noviembre de 2025 puntúan la explicabilidad, con la fuente de cada decisión, como «criterio clave» de 10 puntos.

  • Sin modelos de lenguaje por defecto, la misma entrada da siempre la misma salida: nada se inventa.
  • El texto oculto no se extrae, y puedes pedir que se informe de él.

Así puede citarlo tu aplicacióndecreto.pdf

Importe43.394,84 €página 1 · tabla · fila 3, columna 3
Expediente2026/GEN-3321página 1 · párrafo 1
CSVK7Q2-9XMB-4TLRpágina 1 · margen izquierdo
Registro03 oct 2026 · Nº 7712página 1 · sello, arriba a la derecha

04Qué lee

Lee el documento entero, no solo el texto.

El sumario de lo que Desgrana reconoce hoy en un PDF y de cómo lo devuelve. Las piezas propias de la administración salen aparte y con nombre, en lugar de mezclarse con el texto o perderse.

Sellos, márgenes y firmas

  • Bandas de verificación del margen[!MARGIN], con lado y sentido de lectura
  • Sellos: texto girado, de caucho, en color sobre escaneos[!STAMP], con color, ángulo y texto
  • Firmas a mano en tinta de color[!SIGNATURE], fuera de las líneas que cruzan
  • Firmas digitalesListadas con fecha y motivo
  • Códigos QR y de barrasDecodificados desde la imagen
  • Cabeceras, pies y tablas de firmantes repetidosUna vez, marcados como repetidos
  • Marcas de agua[!WATERMARK], fuera del cuerpo

Formularios y anotaciones

  • Campos de texto, casillas, opciones y desplegables[valor], ☑ ☐, ◉ ○, [valor ▾]
  • Formularios impresos, con la etiqueta sobre la casillaEtiqueta: [valor]
  • Comentarios, resaltados y notas adhesivas<mark>, notas al pie y [!NOTE]

Escaneos e imágenes

  • Páginas escaneadasEnderezadas y leídas con OCR, con el mismo análisis
  • Páginas escaneadas de ladoGiradas antes de leerlas
  • Logotipos, fotos y gráficos[!IMAGE] con tipo, tamaño, posición y su texto
  • Fuentes sin texto legible («Ho dfwr» por «El acto»)Leídas desde la imagen, con un aviso

Tablas

  • Filas y columnas combinadasHTML con rowspan y colspan
  • Tablas sin líneas, alineadas por columnasTablas Markdown
  • Tablas cortadas por un salto de páginaContinuación marcada, con la cabecera de la primera parte
  • Sumarios con código o página a la derechaTablas de dos columnas
  • Tablas dentro de imágenesLeídas con OCR y maquetadas como tabla

Texto y estructura

  • Títulos, párrafos, negrita, cursiva, enlacesMarkdown, con los párrafos rehechos
  • Listas numeradas, anidadas, a) e i.Con sus marcadores originales
  • Texto a dos o más columnasLeído columna a columna
  • Notas al pieNotas al pie de Markdown, unidas a su llamada
  • Pies de figura y de tablaUnidos a su figura o tabla
  • Palabras partidas por un guion de final de líneaUnidas; los compuestos conservan el guion
  • Fracciones de las fórmulas de baremoEn línea: x 10/50

Seguridad

  • Texto oculto: invisible, blanco sobre blanco, tapadoNo se extrae; se informa
  • Texto tachado█: lo de debajo no se revela

05Cómo funciona

Del PDF al documento, en cinco pasos.

Sin cajas negras: cada paso es código que se puede leer. El OCR solo entra donde hace falta, y la visión de un modelo de terceros es opcional y está desactivada por defecto.

  1. Lee el PDF

    Con PDFium: cada letra con su fuente, color, ángulo y orden de pintado; trazos, imágenes, anotaciones, campos y firmas.

  2. OCR donde hace falta

    Con Tesseract, solo en páginas escaneadas e imágenes con texto. Endereza, gira y rehace las tablas desde las líneas de la imagen.

  3. Analiza la maquetación

    Columnas, tablas, párrafos y listas; el margen, los sellos y las marcas de agua; lo que se repite de página en página.

  4. Modelo del documento

    Bloques con tipo, en orden de lectura, cada uno con su página y su posición en la página.

  5. Salida

    Markdown, texto, texto con la maquetación de la página o JSON. Por API HTTP o por línea de comandos.

Opcional · Visión. Para escaneos difíciles, un modelo de terceros puede leer imágenes y sellos y revisar las páginas. Desactivada por defecto; se activa con tu propia clave.

API HTTPlocalhost:8000

$ curl -F file=@decreto.pdf \
       -F format=json \
       http://localhost:8000/v1/extract
  • Milisegundospor página con capa de texto, en una CPU; segundos si la página es un escaneo. Medido con los documentos de prueba del repositorio en un portátil Apple M4.
  • DeterministaSin modelos generativos por defecto, la misma entrada da la misma salida. Nada se inventa ni se resume.
  • 4 formatosMarkdown, texto, texto con la maquetación de la página y JSON con la posición de cada bloque.

06Seguridad y fiabilidad

Hecho para documentos que no salen de casa.

Desgrana se ejecuta dentro de tu infraestructura y no habla con nadie por defecto. Y está construido para que un PDF malformado o malicioso no haga daño.

Cada extracción, en su propio proceso

Con límite de tiempo, de tamaño y de cola, y de memoria si lo configuras. Un PDF malformado no tumba el servicio.

Descargas por URL vigiladas

Solo http y https. Rechaza direcciones privadas, locales y de metadatos, también tras cada redirección, y exige que lo descargado sea un PDF.

El texto oculto no entra

El texto invisible, blanco sobre blanco o tapado, una forma conocida de colar instrucciones a un modelo de lenguaje, no se extrae: se avisa.

Las tachaduras se respetan

El texto bajo una tachadura sale como █ y nunca se revela.

Código abierto y auditable

Licencia AGPL-3.0: tus auditores pueden leer cada línea. Sus dependencias son de licencia permisiva.

Más de 200 pruebas automáticas

Con un documento sintético por cada rasgo de maquetación: tablas, sellos, márgenes, escaneos, formularios.

07Para quién

Para quien construye sobre documentos públicos.

Un mismo motor, cuatro formas de usarlo: en un proyecto para una administración, dentro de tu producto, en tu propio perímetro o en tu cadena de IA.

Integradores

Para responder a pliegos que puntúan la explicabilidad y piden desplegar en el entorno del cliente.

  • Gratis durante el piloto.
  • Se despliega en el entorno de tu cliente con Docker.
  • Licencia pensada para reutilizar entre administraciones.
  • Te ayudamos a responder las cláusulas de tu pliego sobre código abierto y explicabilidad.

Fabricantes de software

Un lector de documentos oficiales dentro de tu producto, sin construirlo tú.

  • Integrado en tu producto, con tu marca.
  • Soporte con plazos de respuesta acordados.
  • Ajustado a los documentos de tus clientes.

Administraciones y grandes organizaciones

Documentos que no pueden salir de tu red, leídos dentro de ella.

  • Dentro de tu perímetro, sin llamadas externas por defecto.
  • Código abierto: tus auditores pueden leerlo.
  • Licencia anual por debajo de 15.000 €.

Equipos de IA

Una primera lectura exacta y citada, para que el modelo trabaje sobre ella.

  • API HTTP y línea de comandos.
  • Bloques con página y posición, para citar la fuente en tu RAG.
  • Gratis con la licencia AGPL.

08Cómo trabajamos

Pruébalo con tus documentos. Tres meses, gratis.

Tres meses de uso gratuito con tus documentos, en tu infraestructura, para decidir si te sirve. Durante el piloto tus documentos no salen de tu red: no los recibimos.

  1. Antes de empezar

    Envíanos un documento

    Uno público con el que trabajes. Te devolvemos lo que Desgrana saca de él, con la fuente de cada dato.

  2. Semana 1

    Instalación y criterios

    En tu infraestructura, con Docker y una CPU. Ponemos por escrito qué tiene que salir bien para que valga la pena.

  3. Semanas 2 a 5

    Pruebas con tus documentos

    Arreglamos lo que salga mal y te ayudamos por correo con la instalación y con cada documento.

  4. Semana 6

    Revisión de resultados

    Contra los criterios que fijamos juntos la primera semana.

  5. Semanas 7 a 12

    Decides

    Licencia de producción, seguir con la AGPL o dejarlo. Los tres caminos valen, sin penalización.

¿Respondes a un pliego? Te ayudamos a responder sus cláusulas sobre código abierto, explicabilidad y despliegue en el entorno del adjudicador.

09Comparativa

Una comparación honesta.

Cada opción tiene su sitio. Si tus documentos son escaneos difíciles o manuscritos, un modelo de visión los leerá mejor que nosotros.

DesgranaModelos de lenguaje (Gemini, Claude, GPT)OCR en la nube (Azure, Google, AWS)Lectores abiertos (Docling)
Texto exacto, sin omisionesSíNo garantizadoSíSí
La misma salida cada vezSíNo garantizadoSíSí
Posición de cada bloqueSíNoSíSí
Bandas de margen, sellos, CSV y QRSíSin probarSin probarSin probar
Escaneos difíciles y manuscritosBásico, con un OCR de visión opcionalMuy bienBienBien
Se ejecuta en tu redSíNormalmente en su nubeNormalmente en su nubeSí
Precio por 1.000 páginas10 € en la nube, o licencia≈0,3–0,4 $ (Gemini 2.5 Flash-Lite)1,50 $ solo texto; de 10 a 50 $ con tablas y formulariosGratis

Precios de terceros según sus páginas de precios en octubre de 2026 (por 1.000 páginas, en dólares); el del modelo de lenguaje es un cálculo con su precio por token. «Sin probar» significa que no lo hemos medido.

10Precios

Precios de lanzamiento.

Sin IVA. Los pilotos son gratis: sabemos que el presupuesto de un piloto no deja sitio para licencias.

Código abierto

Gratis

En tu nube

  • Núcleo con licencia AGPL-3.0
  • Contenedor Docker
  • Soporte de la comunidad

Licencia de producción

9.600 € / año

En tu nube

  • Por despliegue en tu infraestructura
  • Licencia comercial, sin las obligaciones de la AGPL
  • Actualizaciones durante el año
  • Soporte por correo en días laborables
  • Piloto gratis hasta tres meses

Por debajo de 15.000 €: se puede contratar como contrato menor (máximo un año, sin prórroga).

OEM

A medida

Dentro de tu producto

  • Integrado en tu producto, con licencia comercial
  • Marca blanca y soporte con plazos acordados
  • Ajuste a tus tipos de documento

API en la nube Próximamente

10 € / 1.000 páginas

En nuestra nube, en la Unión Europea

  • 2.000 páginas gratis al mes
  • Alojada en la Unión Europea
  • Precio previsto, sujeto a cambios antes del lanzamiento

No guardará tus documentos después de procesarlos, con contrato de encargo del tratamiento. Apúntate a la lista de espera.

11Preguntas

Preguntas frecuentes.

¿Otra duda? Escríbenos a hola@desgrana.es.

¿Por qué no usar directamente un modelo de lenguaje?

Para entender un documento, un modelo es estupendo. Para copiarlo, no siempre: en documentos largos puede saltarse una línea o cambiar una cifra, y no te dice dónde está cada dato. Desgrana hace una primera lectura exacta y citada, y el modelo trabaja sobre ella.

¿Qué pasa con los documentos escaneados?

Se leen con OCR (Tesseract) y pasan por el mismo análisis de maquetación. Para escaneos difíciles o manuscritos puedes activar un OCR de visión de terceros, que se paga aparte por página.

¿Dónde se procesan mis documentos?

En tu propia infraestructura, sin llamadas externas por defecto. Solo salen de tu red si activas una función opcional que lo necesita, como el OCR de visión de un tercero o leer un documento desde una dirección web.

¿Tenéis certificación ENS?

No tenemos certificación propia. Con la licencia, Desgrana se ejecuta dentro de tu infraestructura, que es la que cubre tu certificación, y su código es abierto para que tus auditores lo lean.

¿Puedo contratarlo como contrato menor?

La licencia de producción cuesta menos de 15.000 € al año sin IVA, el límite de los contratos menores de suministros y servicios (artículo 118 de la Ley 9/2017). Un contrato menor dura como máximo un año y no se prorroga (artículo 29.8).

¿Qué formatos acepta y qué devuelve?

Acepta PDF, incluidos los escaneados. Devuelve Markdown, texto, texto con la maquetación de la página y JSON con la posición de cada bloque. Si necesitas otros formatos, cuéntanoslo.

¿Qué licencia tiene?

El núcleo es código abierto con licencia AGPL-3.0: puedes usarlo, estudiarlo y modificarlo libremente, y si lo distribuyes o lo ofreces como servicio, compartes tu código. Si quieres integrarlo en un producto o servicio sin publicar tu código, necesitas la licencia comercial, incluida en la licencia de producción y en OEM. Sus dependencias son de licencia permisiva. El soporte y, cuando existan, la API en la nube y los paquetes de extracción son de pago.

12Contacto

Mándanos el documento que peor se lee.

Uno público con el que trabajes. Te devolvemos lo que Desgrana saca de él, con la fuente de cada dato.

Escribir a hola@desgrana.es

Envíanos documentos públicos o sin datos personales de terceros. Los usamos solo para la prueba y los eliminamos al terminarla.