Я работаю над кодом, который генерирует документы PDF. Я работаю над созданием аннотаций флажков Acroform для редактируемых PDF-форм, и они отлично работают в большинстве читателей PDF, которые я тестирую: Chrome, Firefox, Ma c Preview и PDF Element 6. Тем не менее, я действительно изо всех сил пытаюсь получить правильное отображение в Acrobat Reader.
Я работаю над минимальным примером PDF, который содержит только один флажок и никакого другого содержимого.
Вот как выглядит испорченный PDF в Acrobat Reader при наведении курсора мыши на этот флажок:
Этот флажок по умолчанию невидим. При наведении курсора на флажок отображается граница. Но когда я нажимаю флажок, значение не является постоянным, и повторное нажатие на него ничего не делает.
Вот как это должно выглядеть (рабочий PDF из Adobe Acrobat):
Вот несколько ссылок на PDF-файлы:
Я проверил оба PDF-файла, используя veraPDF . Оба PDF-файла имеют небольшое количество одинаковых ошибок проверки, поэтому это не помогло мне понять разницу.
Я даже пытался скопировать поток XObject непосредственно из рабочего PDF, и если вы посмотрите на / AP => / N => / Да, вы должны видеть, что они практически идентичны:
1 g
0 0 36.029 36.029 re
f
0.5 0.5 35.029 35.029 re
s
q
1 1 34.029 34.029 re
W
n
0 g
BT
/ZaDb 33.4305 Tf
2.853 6.3838 Td
32.8405 TL
0 0 Td
(4) Tj
ET
Q
(Это очень простой поток, который просто отображает галочку с использованием шрифта ZapfDingbats.)
К сожалению, я не могу поделиться конкретными примерами c кода. Я использую Ruby и Prawn, но у меня также есть много низкоуровневого проприетарного кода (у Prawn фактически нет поддержки аннотаций Acroform.) Мне просто нужно понять основные различия между этими PDF-файлами и выяснить, почему один сломан, а другой правильно рендерится, и тогда я смогу внести изменения в мой код.
Если вы знакомы со спецификацией PDF, я был бы очень признателен, если бы вы не посмотрели PDF-файлы, которые я разместил выше. Спасибо за вашу помощь!