Réparer maintenant
- Déposez le fichier
- La réparation s'exécute en local
- Téléchargez le résultat
Quand Acrobat ou Reader affiche "There was an error opening this document. The file is damaged and could not be repaired," ce n'est pas une plainte générique : Acrobat a déjà tenté sa propre récupération silencieuse et a échoué. Un PDF se lit depuis la fin, et les structures de la fin sont justement ce qu'un enregistrement défectueux ou un téléchargement interrompu détruisent en premier. Déposez le fichier ci-dessus et l'outil analyse la véritable structure d'objets du PDF dans votre navigateur, reconstruit la table de références croisées à partir des objets qu'il trouve et réassemble un fichier qui s'ouvre, sans que le document quitte jamais votre appareil.
Un PDF se lit depuis la fin, et c'est pour cela qu'il casse ainsi
Un PDF n'est pas un flux qui se lit de haut en bas. Il commence par un en-tête comme %PDF-1.7, suivi d'un corps d'objets numérotés (chacun écrit sous la forme N 0 obj … endobj) qui contiennent les pages, les polices, les images et le contenu. Après le corps vient la table de références croisées (xref) : une liste indiquant le décalage (offset) exact en octets de chaque objet. Ensuite, un trailer désigne la racine du document et, surtout, le fichier se termine par startxref suivi d'un offset en octets et du marqueur %%EOF.
Pour ouvrir le fichier, un lecteur se place à la fin, lit startxref pour savoir où se trouve le xref, saute jusque-là et utilise les offsets pour localiser la racine et charger les pages. Tout repose sur l'intégrité de ce trailer et sur l'exactitude des offsets. Depuis PDF 1.5, cette carte peut aussi être stockée sous forme de cross-reference stream compressée et regrouper de nombreux objets dans des object streams (ObjStm) : plus efficace, mais cela signifie qu'un seul flux endommagé à la fin peut masquer d'un coup une multitude d'objets.
Comme l'index et le trailer se trouvent tout à la fin, ce sont les premières victimes lorsqu'un enregistrement est interrompu, qu'un téléchargement est tronqué ou qu'une mise à jour incrémentale est mal écrite. C'est pourquoi les PDF « endommagés » ont si souvent un contenu de pages parfaitement bon et une carte cassée qui pointe vers lui.
Pourquoi la réparation propre à Acrobat abandonne
Acrobat reconstruit normalement un xref cassé de façon silencieuse : si les offsets ne correspondent pas, il parcourt le fichier à la recherche de marques obj et reconstruit la table sans vous le dire. Ainsi, "could not be repaired" signifie que ce mécanisme de secours a lui aussi échoué : les dégâts sont allés au-delà de ce que le reconstructeur d'Acrobat tolère. Les raisons les plus courantes :
La fin du fichier a été tronquée. Un téléchargement ou une copie qui s'est arrêté trop tôt perd complètement le xref, le trailer, le startxref et le %%EOF, et peut-être aussi les derniers objets. Une mise à jour incrémentale défectueuse. Les PDF sont souvent modifiés en ajoutant à la fin une nouvelle section xref et un trailer ; si cet ajout est corrompu, la chaîne des mises à jour pointe au mauvais endroit. Une cross-reference stream ou une object stream endommagée. Quand la carte elle-même est un flux compressé et que ce flux est corrompu, Acrobat peut perdre de vue les objets empaquetés à l'intérieur. Des octets altérés en cours de route : un transfert en mode texte qui a modifié les fins de ligne, ou une synchronisation qui a inversé des octets, peut aussi désorganiser les offsets au point que plus rien ne concorde.
Dans tous les cas, la conclusion utile est la même : les objets qui composent vos pages sont souvent toujours présents dans le corps ; ce qui est cassé, c'est le répertoire qui pointe vers eux.
Ce que récupère une reconstruction plus poussée, et pourquoi ne rien téléverser
Plutôt que de se fier au trailer cassé, l'outil parcourt tout le fichier à la recherche de définitions obj, note où chacune commence réellement et reconstruit la table de références croisées à partir de ces positions réelles. Il relie ensuite de nouveau la racine du document et l'arborescence des pages pour qu'un lecteur puisse à nouveau parcourir les pages, en récupérant au passage les flux de contenu, les polices incorporées et les images. Lorsque la carte résidait dans une cross-reference stream ou une object stream compressée ayant survécu, il les lit aussi ; lorsque la fin a été tronquée, il récupère chaque objet écrit avant la coupure et assemble un PDF valide autour d'eux. Tout cela s'exécute entièrement dans l'onglet de votre navigateur : sans Acrobat, sans module complémentaire, sans aller-retour vers un serveur.
Les limites honnêtes : le contenu qui n'a jamais été écrit ne peut pas être restauré ; donc si le fichier a été tronqué, les pages qui n'avaient pas encore été enregistrées sont perdues — vous récupérez les pages jusqu'au point de coupure. Si un objet précis dont dépendent vos pages est tombé dans la zone endommagée, cette page peut revenir incomplète. Et un PDF chiffré et protégé par mot de passe ne peut pas être reconstruit sans le mot de passe, car ses objets sont illisibles tant qu'ils ne sont pas déchiffrés. Ce que la réparation garantit, en revanche, c'est la confidentialité : contrats, dossiers médicaux, relevés et travaux non publiés sont lus depuis le disque et réassemblés localement, et vous pouvez surveiller l'onglet Réseau (Network) et vérifier que 0 octet du document ne quitte jamais votre appareil.
Ce que cela peut et ne peut pas réparer
Peut réparer
- Un PDF dont le xref / trailer / startxref a été endommagé ou tronqué : la table est reconstruite en recherchant les définitions obj
- Des fichiers tronqués par un téléchargement ou une copie interrompus : chaque objet écrit avant la coupure est récupéré
- Des documents cassés par une mise à jour incrémentale défectueuse ou par une cross-reference/object stream corrompue
- Des PDF qu'Acrobat n'ouvre que pour annoncer que le fichier est endommagé et n'a pas pu être réparé, quand les objets des pages survivent
Ne peut pas réparer
- Des pages ou des objets qui n'ont jamais été écrits après une troncature : ces octets ne sont pas sur votre disque
- Des PDF chiffrés par mot de passe sans le mot de passe (les objets ne peuvent pas être lus tant qu'ils ne sont pas déchiffrés)
- Un fichier de 0 octet ou qui ne contient aucun objet PDF reconnaissable
- Une page qui dépend d'un objet précis tombé dans la zone endommagée (elle peut revenir incomplète)
Si une réparation échoue, nous vous expliquons pourquoi (données manquantes ou structure endommagée), et vous n'êtes jamais facturé pour une réparation échouée.