Недавно наткнулся на книгу в PDF, которая благополучно открывается в Окуляре, но при открытии файла на несколько секунд отображается ошибка: Some errors were found in the document, Okular might not be able to show the content correctly
.
В процессе чтения понаделал кучу заметок внутри книги (выделял маркером, рисовал диаграммы, подчёркивал, зачёркивал). Затем сохранил. И ошибка отобразилась снова. Все мои заметки при этом в книге успешно сохранились (как я тогда думал, бгг) и при повторном открытии всё было в норме. Спустя несколько дней решил почитать книгу на телефоне (Android): открываю её через PDF-браузер, а там пусто. Никакие заметки, увы, не сохранились внутрь документа, всё осталось в Окуляре на десктопе.
Заметки, конечно, никто уже не вернёт, придётся вручную по-новой писать. Но как пофиксить ошибку и сделать так, чтобы заметки всё-таки сохранялись как обычно — внутрь PDF? Надо этот файл просто пересохранить.
Но если вы пересохраните его в самом Окуляре, ошибка никуда не уйдёт. В моём случае, ошибка ушла лишь после пересохранения в Xodo (PDF-браузере, который я использую на Андроиде).
- Открываем книгу в Xodo
- Заходим в меню Export > Identical Copy (либо другие варианты экспорта на ваш вкус)
Это создаст копию PDF книги, в которой уже не будет никаких ошибок. Можно и по-другому поступить:
- После открытия книги в Xodo, добавляем любую заметку
- Xodo сразу автоматом пытается её сохранить, у него не получается и вам предлагают сохранить копию документа
- Соглашаемся
Старый PDF с ошибкой отправляем в утиль и открываем в Окуляре копию созданную Xodo. Теперь никакой ошибки там отображаться не будет, а все новые заметки в книге будут корректно сохраняться и отображаться на всех устройствах.
Сама ошибка известна и по поводу неё уже создано несколько баг репортов. Проблема в библиотеке Poppler, которую использует бэкэнд Окуляра для рендеринга PDF. Если глянуть исходный код Окуляра, в самом конце файла okular/generators/poppler/generator_pdf.cpp
можно обнаружить функцию, которая как раз и кидает ошибку на стадии генерации PDF. Ошибка возникает скорей всего либо из-за того, что PDF был сгенерирован в какой-то кривой программе, либо, как пишут люди в баг-репортах, из-за того что в PDF, при создании, были вложены какие-то приватные данные.