Перейти к содержимому

Восстановить PDF

Спасите PDF, который не открывается. Индекс файла пересобирается, а если документ вообще не удаётся разобрать, из байтов извлекается всё, что ещё можно прочитать, — и ничего не сохраняется.

  • Не сохраняется
  • Без очереди и ожидания
  • Без регистрации и водяных знаков

Как это работает

1

Добавьте повреждённый PDF

Перетащите файл, который не открывается. Неважно, что другие программы его отвергают.

2

Восстановите

Файл переиндексируется или, если его не удаётся разобрать, пересобирается объект за объектом.

3

Проверьте и скачайте

Вы увидите, сколько страниц удалось вернуть и что было сделано, а затем скачаете восстановленный файл.

Что обычно сломано и два пути назад

Большинство PDF, которые не открываются, по сути не повреждены. PDF заканчивается таблицей перекрёстных ссылок — индексом, где записано байтовое смещение каждого объекта в файле, — и программы для чтения находят по ней вообще всё. Испортите этот индекс, и совершенно целый документ перестанет открываться: ничего нельзя найти, хотя всё на месте. Прерванная загрузка, оборвавшееся сохранение, упавшее приложение, правка файла программой, которая не обновила смещения, передача, исказившая концы строк, — всё это ломает индекс и не касается содержимого.

Первый проход использует именно это. Файл разбирается снисходительно — указанные смещения игнорируются там, где они расходятся с тем, что на самом деле лежит в файле, — а затем записывается заново с правильным индексом, правильными длинами потоков и чистым трейлером. Так восстанавливается подавляющее большинство файлов, это быстро, и в страницах ничего не меняется: результат — ваш документ с заново прикрученным рабочим оглавлением.

Если файл вообще не разбирается, второй проход делает то же, что программы восстановления для компьютера: просматривает сырые байты от начала до конца в поисках заголовков объектов, собирает всё, что ещё похоже на объект PDF, и строит индекс по тому, что действительно есть, а не по тому, что заявляет файл. Страница сообщает, какой из двух проходов сработал, потому что это важно: пересборка означает, что исходная структура не читалась, и результат стоит просмотреть, прежде чем ему доверять.

Ни один проход не может выдумать данные, которых нет, — и ни один инструмент в мире не может. Если загрузка остановилась на шестидесяти процентах, последних сорока процентов страниц в файле просто нет; восстановление находит дошедшие страницы и на этом останавливается. Если повреждение внутри сжатого потока, этот поток не распаковать, и страница, которую он рисовал, вернётся пустой, а соседние будут в порядке. Вернуть часть документа — здесь нормальный хороший исход, а заново получить исходный файл всегда лучше, чем чинить обрезанную копию.

Если нужно другое

qpdf — эталонный инструмент для этой задачи, и тот же первый проход он выполняет тщательнее: qpdf --replace-input damaged.pdf перезаписывает файл с правильным индексом и справляется с зашифрованными документами, потоками объектов и линеаризованными файлами, на которых снисходительный разбор может споткнуться. mutool clean -ggg in.pdf out.pdf идёт ещё дальше: пересобирает дерево страниц и отбрасывает всё, на что нет ссылок. Оба бесплатны, оба работают с файлами гораздо больше того, что вмещает вкладка браузера, и оба сообщают, что им пришлось исправить.

Для файла, повреждённого настолько, что остаётся только поиск объектов, самым упорным часто оказывается Ghostscript: gs -o repaired.pdf -sDEVICE=pdfwrite broken.pdf интерпретирует содержимое страниц, а не просто переиндексирует его, и иногда воссоздаёт страницы, на которых другие инструменты сдаются, — ценой перезаписи всего файла, так что результат уже не совпадает побайтово с уцелевшим.

Частые вопросы

Что на самом деле восстанавливается?

Большинство «битых» PDF структурно целы, но у них повреждена таблица перекрёстных ссылок — индекс, который указывает, где лежит каждый объект. Причины — недокачанные файлы, прерванное сохранение, программы с ошибками, — и программы для чтения отвергают файл, хотя содержимое на месте. Если пересобрать этот индекс, документ сразу возвращается.

А если файл вообще не удаётся разобрать?

Тогда сырые байты просматриваются в поисках заголовков объектов, всё, что ещё есть, собирается, и вокруг записываются новый индекс и трейлер — так же восстанавливают файлы программы для компьютера. Прежде чем вы получите результат, он открывается повторно, поэтому о файле, который всё равно не загружается, вы получите сообщение, а не скачаете его.

Мой повреждённый файл где-нибудь сохраняется?

Нет. Даже при сканировании для восстановления ничего не сохраняется. Ничего никуда не отправляется.

Можно ли восстановить файл, который недокачался?

Часто да — до того места, где обрываются данные. Страницы, которые так и не скачались, выдумать нельзя, поэтому вы можете получить первую часть документа, а не весь документ.

Восстановит ли он PDF, защищённый паролем?

При восстановлении шифрование игнорируется, поэтому защищённый файл может стать читаемым, только если у вас есть и пароль. Для этого отдельно используйте «Снять пароль с PDF».

Полезно знать: Восстанавливается то, что ещё есть в файле, — данные, которых действительно нет, воссоздать невозможно. Если документ обрезан, страницы после места обрыва потеряны навсегда. Файлы с повреждениями внутри сжатых потоков могут восстановиться с некоторыми пустыми страницами.

Разместите этот инструмент на своём сайте

Бесплатно для любого блога, страницы класса или справочной статьи. Вставьте один фрагмент кода — и посетители смогут пользоваться инструментом прямо на вашей странице.