Repáralo ahora
- Suelta el archivo
- La reparación ocurre en local
- Descarga el resultado
Cuando Acrobat o Reader muestra "There was an error opening this document. The file is damaged and could not be repaired," no es una queja genérica: Acrobat ya ha intentado su propia recuperación silenciosa y ha fracasado. Un PDF se lee desde el final, y las estructuras del final son justo lo que un guardado defectuoso o una descarga interrumpida destruyen primero. Suelta el archivo arriba y la herramienta analiza la estructura real de objetos del PDF en tu navegador, reconstruye la tabla de referencias cruzadas a partir de los objetos que encuentra y vuelve a ensamblar un archivo que sí abre, sin que el documento salga nunca de tu equipo.
Un PDF se lee desde el final, y por eso se rompe así
Un PDF no es un flujo que se lea de arriba abajo. Empieza con una cabecera como %PDF-1.7, seguida de un cuerpo de objetos numerados (cada uno escrito como N 0 obj … endobj) que contienen las páginas, las fuentes, las imágenes y el contenido. Tras el cuerpo viene la tabla de referencias cruzadas (xref): una lista con el desplazamiento (offset) exacto en bytes de cada objeto. Después, un trailer indica cuál es la raíz del documento y, lo más importante, el archivo termina con startxref seguido de un offset en bytes y la marca %%EOF.
Para abrir el archivo, un lector se sitúa al final, lee startxref para saber dónde está el xref, salta hasta ahí y usa los offsets para localizar la raíz y cargar las páginas. Todo depende de que ese trailer esté intacto y los offsets sean correctos. Desde PDF 1.5, este mapa también puede guardarse como una cross-reference stream comprimida y empaquetar muchos objetos dentro de object streams (ObjStm): más eficiente, pero significa que un solo flujo dañado al final puede ocultar de golpe muchísimos objetos.
Como el índice y el trailer están justo al final, son las primeras víctimas cuando un guardado se interrumpe, una descarga se trunca o una actualización incremental se escribe mal. Por eso los PDF "dañados" tienen tan a menudo un contenido de páginas perfectamente bueno y un mapa roto que apunta a él.
Por qué la propia reparación de Acrobat se rinde
Acrobat normalmente reconstruye un xref roto de forma silenciosa: si los offsets no cuadran, escanea el archivo en busca de marcas obj y reconstruye la tabla sin decírtelo. Así que "could not be repaired" significa que ese mecanismo de emergencia también ha fallado: el daño ha ido más allá de lo que el reconstructor de Acrobat tolera. Los motivos habituales:
El final del archivo se truncó. Una descarga o una copia que se detuvo antes de tiempo pierde por completo el xref, el trailer, el startxref y el %%EOF, y posiblemente también los últimos objetos. Una actualización incremental defectuosa. Los PDF se editan a menudo añadiendo al final una nueva sección xref y un trailer; si ese añadido está corrupto, la cadena de actualizaciones apunta al lugar equivocado. Una cross-reference stream u object stream dañada. Cuando el propio mapa es un flujo comprimido y ese flujo está corrupto, Acrobat puede perder de vista los objetos empaquetados dentro. Bytes alterados en el trayecto: una transferencia en modo texto que cambió los saltos de línea, o una sincronización que volteó bytes, también puede desbaratar los offsets hasta que nada encaja.
En todos los casos, la conclusión útil es la misma: los objetos que componen tus páginas suelen seguir presentes en el cuerpo; lo que está roto es el directorio que apunta a ellos.
Qué recupera una reconstrucción más a fondo, y por qué no subir nada
En lugar de fiarse del trailer roto, la herramienta escanea todo el archivo en busca de definiciones obj, anota dónde empieza realmente cada una y reconstruye la tabla de referencias cruzadas a partir de esas posiciones reales. Después vuelve a enlazar la raíz del documento y el árbol de páginas para que un lector pueda recorrer las páginas de nuevo, rescatando por el camino los flujos de contenido, las fuentes incrustadas y las imágenes. Cuando el mapa vivía en una cross-reference stream u object stream comprimida que sobrevivió, también las lee; cuando el final se truncó, recupera cada objeto que se escribió antes del corte y ensambla un PDF válido a su alrededor. Todo esto se ejecuta enteramente en la pestaña de tu navegador: sin Acrobat, sin complementos, sin viaje de ida y vuelta a un servidor.
Los límites honestos: el contenido que nunca llegó a escribirse no se puede restaurar, así que si el archivo se truncó, las páginas que aún no se habían guardado se han perdido; recuperas las páginas hasta el punto del corte. Si un objeto concreto del que dependen tus páginas cayó en la zona dañada, esa página puede volver incompleta. Y un PDF cifrado y protegido con contraseña no se puede reconstruir sin la contraseña, porque sus objetos son ilegibles hasta descifrarlos. Lo que la reparación sí garantiza es la privacidad: contratos, historiales médicos, extractos y trabajos sin publicar se leen del disco y se vuelven a ensamblar localmente, y puedes vigilar la pestaña Red (Network) y comprobar que 0 bytes del documento salen nunca de tu equipo.
Qué puede y qué no puede reparar
Puede reparar
- Un PDF cuyo xref / trailer / startxref quedó dañado o truncado: la tabla se reconstruye escaneando en busca de definiciones obj
- Archivos truncados por una descarga o una copia interrumpida: se recupera cada objeto escrito antes del corte
- Documentos rotos por una actualización incremental defectuosa o por una cross-reference/object stream corrupta
- PDF que Acrobat abre solo para decir que el archivo está dañado y no se pudo reparar, cuando los objetos de las páginas sobreviven
No puede reparar
- Páginas u objetos que nunca se escribieron tras una truncación: esos bytes no están en tu disco
- PDF cifrados con contraseña sin la contraseña (los objetos no se pueden leer hasta descifrarlos)
- Un archivo de 0 bytes o que no contiene objetos PDF reconocibles
- Una página que depende de un objeto concreto que cayó dentro de la zona dañada (puede volver incompleta)
Si una reparación falla, te decimos por qué (datos que faltan frente a estructura dañada), y nunca se te cobra por una reparación fallida.