Восстановить PDF
Спасите PDF, который не открывается. Индекс файла пересобирается, а если документ вообще не удаётся разобрать, из байтов извлекается всё, что ещё можно прочитать, — и ничего не сохраняется.
- Не сохраняется
- Без очереди и ожидания
- Без регистрации и водяных знаков
Как это работает
Добавьте повреждённый PDF
Перетащите файл, который не открывается. Неважно, что другие программы его отвергают.
Восстановите
Файл переиндексируется или, если его не удаётся разобрать, пересобирается объект за объектом.
Проверьте и скачайте
Вы увидите, сколько страниц удалось вернуть и что было сделано, а затем скачаете восстановленный файл.
Что обычно сломано и два пути назад
Большинство 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».
Полезно знать: Восстанавливается то, что ещё есть в файле, — данные, которых действительно нет, воссоздать невозможно. Если документ обрезан, страницы после места обрыва потеряны навсегда. Файлы с повреждениями внутри сжатых потоков могут восстановиться с некоторыми пустыми страницами.
Разместите этот инструмент на своём сайте
Бесплатно для любого блога, страницы класса или справочной статьи. Вставьте один фрагмент кода — и посетители смогут пользоваться инструментом прямо на вашей странице.