web-dev-qa-db-fra.com

Comment puis-je réparer/réparer un corrompu PDF fichier?

Quelqu'un a-t-il des recommandations ou des procédures pour réparer un PDF corrompu? Lorsque j'ouvre le fichier, je reçois le message "Une erreur s'est produite lors de l'ouverture de ce document. Le fichier est endommagé et ne peut pas être réparé." Il semble y avoir une myriade d'outils, mais aucun que je puisse qualifier de réputé. Existe-t-il des solutions Linux open source pour cela?

74
Tim Alexander

Ghostscript réparera automatiquement votre PDF corrompu ... s'il peut l'ouvrir en premier lieu (c'est-à-dire s'il n'est pas endommagé de manière irréversible). Mais après, vous aurez encore besoin de vérifier le résultat ...

Sous Linux, essayez cette commande:

 gs \
  -o repaired.pdf \
  -sDEVICE=pdfwrite \
  -dPDFSETTINGS=/prepress \
   corrupted.pdf

Sous Windows, essayez celui-ci:

 gswin32c.exe ^
  -o repaired.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/prepress ^
   corrupted.pdf
95
Kurt Pfeifle

J'avais un fichier PDF corrompu, print.pdf, que Ghostscript n'a pas pu ouvrir, mais les visualiseurs graphiques Linux habituels PDF (Okular, Evince) se sont bien ouverts. (Dans mon cas, le fichier avait des ordures au début au lieu d'un en-tête PDF lorsqu'il était ouvert dans un éditeur hexadécimal.)

Ces téléspectateurs PDF utilisent Poppler comme moteur de rendu dorsal PDF. Vous pouvez donc réparer le PDF à l'aide des outils de ligne de commande de Poppler. Dans Ubuntu, ils se trouvent dans le paquetage poppler-utils. J'ai utilisé:

pdftocairo -pdf print.pdf print_repaired.pdf

qui a généré un fichier PDF avec les en-têtes corrects, quels outils tels que Ghostscript sont désormais acceptés.

32
Mechanical snail

mutool ( page du projet , page de manuel ) réparera les PDF brisés sans les imprimer .

  • Installation par exemple sur Ubuntu: Sudo apt-get install mupdf-tools
  • Exécutez-le comme ceci: mutool clean input.pdf output.pdf
mutool clean [options] input.pdf [output.pdf] [pages]

  The clean command pretty prints and rewrites the syntax of a PDF file.
   It can be used to repair broken files, expand compressed streams,
   filter out a range of pages, etc.
  If no output file is specified, it will write the cleaned PDF to
   "out.pdf" in the current directory.

Alternativement, il existe quelques outils et frameworks qui peuvent décomposer/décompiler des PDF en leurs composants sans les restituer. Celles-ci pourraient être utiles pour extraire du texte, des scripts et des images. Voir cette réponse pour une liste de ces outils: https://reverseengineering.stackexchange.com/q/1526/8210 . Par exemple. vous pouvez essayer la réponse principale actuelle Origami , il a un visualiseur basé sur GTK.

21
jmiserez

J'avais un fichier pdf corrompu, car le fichier php utilisé pour le télécharger faisait écho à des erreurs (en HTML) et des caractères NUL à la fin.

La solution consistait à ouvrir le fichier PDF avec Notepad ++ et à supprimer tout le texte après la ligne.

%%EOF
10
Oriol