Сертификация образца 2g.pdf, используя код OP и проверяя результат другими инструментами, кроме Adobe Reader, получаем информацию о том, что подпись сертификата действительна.
Нечто подобное (например, Adobe Reader жалуется на совершенно правильную подпись) обычно происходит с документами, которые заставляют Adobe Reader манипулировать документом при загрузке. В таком случае Adobe Reader проверяет подписи в измененном документе и, следовательно, обнаруживает недействительную подпись. В частности, такие манипуляции могут быть восстановлением поврежденных файлов.
То же самое и здесь, 2g.pdf не является полностью допустимым (даже несмотря на то, что синтаксические анализаторы PDF обычно игнорируют): его таблица перекрестных ссылок сегментирована на несколько подразделов:
xref
0 1
0000000001 65535 f
3 2
0000000015 00000 n
0000000107 00000 n
6 41
0000000146 00000 n
...
0000015682 00000 n
48 14
0000015864 00000 n
...
0000025433 00000 n
66 2
0000025455 00000 n
0000025548 00000 n
69 41
0000025588 00000 n
...
0000041144 00000 n
111 14
0000041327 00000 n
...
0000050929 00000 n
126 4
0000050952 00000 n
0000051004 00000 n
0000051075 00000 n
0000051242 00000 n
Но сегментированные таблицы перекрестных ссылок действительны только в случае инкрементных обновлений, а не в случае первоначальных редакций документа, и этот документ создается как первоначальная редакция.
Для файла, который никогда не обновлялся постепенно, раздел перекрестных ссылок должен содержать только один подраздел, нумерация объектов которого начинается с 0.
(раздел 7.5.4 Таблица перекрестных ссылок для ISO 32000-1)
Таким образом, эта сегментированная таблица недействительна.
Поэтому я исправил таблицу перекрестных ссылок, чтобы она содержала только один подраздел (добавив записи f (ree) для оставленных индексов: 2g-fix.pdf. И действительно, при сертификации этого документа с использованием кода OP вы получаете сертификационную подпись, которой доволен Adobe Reader (по крайней мере, версия XI, которую я сейчас установил).
Таким образом, это недостаток использования инкрементных обновлений: ошибки исходного документа сохраняются, и нужно с ними справляться ...
person
mkl
schedule
30.05.2015