Как я могу исправить /восстановить поврежденный файл PDF?

Есть ли у кого-нибудь рекомендации или процедуры для восстановления поврежденного PDF-файла? Когда я открываю файл, я получаю «Ошибка при открытии этого документа. Файл поврежден и не может быть восстановлен». Там, кажется, есть множество инструментов, но ни один из них, который я мог бы назвать авторитетным. Существуют ли какие-либо решения на базе Linux с открытым исходным кодом?

69 голосов | спросил Tim Alexander 3 Maypm11 2011, 18:35:04

4 ответа


83

Ghostscript автоматически восстановит ваш поврежденный PDF-файл ... если он может открыть его в первую очередь (то есть, если он не поврежден без ремонта). Но потом вам все равно придется дважды проверить результат ...

В Linux попробуйте эту команду:

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

В Windows попробуйте следующее:

 gswin32c.exe ^
  -o repaired.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/prepress ^
   corrupted.pdf
ответил Kurt Pfeifle 11 Maypm11 2011, 16:47:42
28

У меня был поврежденный PDF-файл, print.pdf, который Ghostscript не смог открыть, но обычные графические средства просмотра PDF в Linux (Okular, Evince) открылись отлично. (В моем случае файл имел мусор в начале вместо заголовка PDF, когда он был открыт в шестнадцатеричном редакторе.)

Эти зрители в формате PDF используют Poppler в качестве внешнего рендеринга PDF. Таким образом, вы можете восстановить PDF-файл с помощью инструментов командной строки Poppler. В Ubuntu они находятся в пакете poppler-utils. Я использовал:

pdftocairo -pdf print.pdf print_repaired.pdf

, который сгенерировал PDF-файл с правильными заголовками, какие инструменты, такие как Ghostscript, теперь приняты.

ответил Mechanical snail 18 J0000006Europe/Moscow 2013, 06:01:58
18

mutool ( страница проекта , manpage ) восстановит сломанные PDF-файлы без их печати .

  • Установка, например. на Ubuntu: sudo apt-get install mupdf-tools
  • Запустите его следующим образом: 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.

В качестве альтернативы существует несколько инструментов и фреймворков, которые могут разложить /декомпилировать PDF-файлы в свои компоненты без их рендеринга. Они могут быть полезны для извлечения текста, сценариев и изображений. См. Этот ответ для списка таких инструментов: https://reverseengineering.stackexchange.com/q/1526/8210. Например. вы можете попробовать текущий верхний ответ Origami , у него есть просмотрщик на основе GTK .

ответил jmiserez 4 J0000006Europe/Moscow 2015, 17:45:06
9

У меня был поврежден pdf-файл, потому что php-файл, используемый для его загрузки, повторял некоторые ошибки (в HTML) и символы NUL в конце.

Решение заключалось в том, чтобы открыть PDF с помощью Notepad ++ и удалить весь текст после строки

%%EOF
ответил Oriol 29 Jpm1000000pmWed, 29 Jan 2014 16:54:20 +040014 2014, 16:54:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132