PDF не открывается — что делать
Сначала определите, какая из пяти причин ваша, — дальше действия расходятся полностью. Пароль: программа просит его до показа первой страницы. Сломанная структура: ошибка выскакивает мгновенно, хотя имя и размер выглядят обычными. Не PDF вовсе: в начале файла нет подписи %PDF. Обрыв закачки: ваш размер меньше, чем у отправителя. Нехватка памяти: что-то успело показаться, и только потом вкладка закрылась.
Коротко о цифрах
- Подпись формата
- рабочий PDF начинается с байтов %PDF-
- Где ищется подпись
- в первом килобайте файла — у документа со сбитым заголовком она смещена
- Признак шифрования
- движок просмотра бросает PasswordException до первой страницы
- Признак поломки
- в тексте ошибки есть invalid pdf, failed to parse pdf или no pdf header
- Чего не делает никто
- не подбирает неизвестный пароль открытия
Признак, по которому причина видна за минуту
- Окно с полем пароля появляется до первой страницы — файл зашифрован. Это не поломка, и восстановление тут бесполезно.
- Ошибка выскакивает мгновенно, размер обычный — сломана структура: таблица перекрёстных ссылок, трейлер или длина потока.
- Ни одна программа не признаёт файл форматом PDF — посмотрите его начало в любом текстовом редакторе: у настоящего PDF там подпись %PDF-.
- Ваш размер меньше того, что называет отправитель, — закачка оборвалась, и диагностика на этом заканчивается.
- Первые страницы показались, а потом вкладка или приложение закрылись — упёрлись в память устройства, а не в формат.
Что делать в каждом случае
- Сравните размер файла с тем, который видит отправитель. Расхождение — повод скачать заново, а не чинить.
- Откройте файл в браузере: он читает PDF своим движком и часто говорит внятнее, чем настольная программа.
- Просят пароль — идите на снятие защиты, но сначала выясните, какой это пароль: открытия или владельца.
- Пароля не просят, а ошибка есть — отдайте файл восстановлению: оно перестроит таблицу ссылок по объектам, которые удалось найти.
- Восстановление отказало — попросите отправителя переслать оригинал или выгрузить документ заново из программы, где он создавался.
- Файл открывается, но роняет вкладку — разделите его на части и работайте с ними по очереди.
Чем поможем и чем не поможем
Помогаем с двумя случаями из пяти. Сломанную структуру чинит восстановление: qpdf заново собирает документ из тех объектов, которые нашёл при сплошном просмотре файла. Ограничение прав снимает разблокировка: если документ открывается без пароля, но не даёт печатать или копировать, защита убирается за один проход.
Не поможем там, где помочь нечем. Неизвестный пароль открытия мы не подбираем — перебора у нас нет и не будет. Файл, в котором закачка оборвалась на середине, содержит ровно столько данных, сколько успело прийти, и вторая половина документа не появится ни от какого инструмента. Переименованный в .pdf архив или картинку мы тоже не превратим в PDF: содержимое внутри другое.
Частые вопросы
Файл открывается на компьютере, но не открывается у получателя. Кто виноват?
Чаще всего разные просмотрщики. Встроенный просмотрщик почты и мессенджера показывает только первую страницу или отказывается от файлов с формами, тогда как настольная программа читает тот же документ целиком.
Стоит ли пробовать восстановление, если просят пароль?
Нет. Зашифрованный документ структурно исправен, чинить в нём нечего, и восстановление вернёт отказ с пометкой о шифровании. Сначала снимите защиту, и только потом, если ошибка останется, чините структуру.
Почему один и тот же файл открывается в браузере и не открывается в программе?
Браузерный движок терпимее к нарушениям спецификации: он достраивает недостающие ссылки на лету. Настольные программы чаще требуют формально корректный документ и отказываются от того, что браузер молча починил у себя в памяти.
Можно ли понять причину, не открывая файл?
Частично. Размер в ноль байт означает пустую запись, размер меньше исходного — обрыв закачки, а отсутствие подписи в начале файла говорит, что перед вами вообще не PDF, как бы он ни назывался.