Wie kann ich eine beschädigte PDF-Datei reparieren/reparieren?

Hat jemand eine Empfehlung oder Verfahren zur Reparatur eines beschädigten PDF? Wenn ich die Datei öffne, bekomme ich "Es gab einen Fehler beim Öffnen dieses Dokuments. die Datei ist beschädigt und kann nicht repariert werden."Es scheint eine Vielzahl von Tools zu geben, aber keine, die ich als seriös bezeichnen könnte. Gibt es möglicherweise Opensource-Linux-basierte Lösungen dafür?

Author: Breakthrough, 2011-05-03

4 answers

Ghostscript repariert Ihr beschädigtes PDF automatisch... wenn es es überhaupt öffnen kann (dh wenn es nicht repariert werden kann). Aber danach müssen Sie immer noch das Ergebnis überprüfen...

Versuchen Sie unter Linux diesen Befehl:

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

Versuchen Sie unter Windows folgendes:

 gswin32c.exe ^
  -o repaired.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/prepress ^
   corrupted.pdf
 113
Author: Kurt Pfeifle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-05-11 12:47:42

Ich hatte eine beschädigte PDF-Datei, print.pdf , die Ghostscript nicht öffnen konnte, aber die üblichen grafischen Linux-PDF-Viewer (Okular, Evince) geöffnet fein. (In meinem Fall hatte die Datei am Anfang Müll anstelle eines PDF-Headers, wenn sie in einem Hex-Editor geöffnet wurde.)

Diese PDF-Viewer verwenden Poppler als Backend-PDF-renderer. So können Sie das PDF mit den Befehlszeilentools von Poppler reparieren. In Ubuntu befinden sich diese im Paket poppler-utils. Ich verwendete:

pdftocairo -pdf print.pdf print_repaired.pdf

, das eine PDF-Datei mit korrekten Headern generiert hat, welche Tools wie Ghostscript jetzt akzeptiert.

 45
Author: Mechanical snail,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-06-18 02:01:58

mutool (Projekt-Seite, manpage - ) repariert defekte PDFs ohne sie zu drucken.

  • Installation z.B. unter Ubuntu: sudo apt-get install mupdf-tools
  • Führe es so aus: 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.

Alternativ gibt es einige Tools und Frameworks, die PDFs in ihre Komponenten zerlegen/dekompilieren können, ohne sie zu rendern. Diese können zum Extrahieren von Text, Skripten und Bildern nützlich sein. In dieser Antwort finden Sie eine Liste solcher Tools: https://reverseengineering.stackexchange.com/q/1526/8210. ZB können Sie die aktuelle Top-Antwort versuchen Origami, es hat einen GTK - basierten Viewer.

 31
Author: jmiserez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-13 12:49:38

Ich hatte eine beschädigte PDF-Datei, da die zum Herunterladen verwendete PHP-Datei am Ende einige Fehler (in HTML) und NUL-Zeichen wiedergab.

Die Lösung bestand darin, das PDF mit Notepad++ zu öffnen und den gesamten Text nach der Zeile

%%EOF
 11
Author: Oriol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-01-29 12:54:20