2015-09-14 2 views
0

EDIT: ссылка на тестовые файлы ниже.Формы Adobe Livecycle (XFA), созданные iTextSharp, визуализируются по-разному в Acrobat и Reader

В рамках проекта я создал динамические формы PDF в LiveCycle Designer 11.0. Эти формы установлены для чтения в Acrobat, прежде чем перенаправляться разработчику. Затем он заполняет PDF, используя iTextSharp 5.5.6.

Эта форма имеет много динамических свойств, включая скрытые поля, динамические подформ и т.д.

Когда генерируется форма открыта в ПО Adobe Reader 11.0.12 (моя версия, а другие страдают), форма а) только для чтения и b) не отображает все динамические поля, даже если критерии были удовлетворены, чтобы отобразить их, и они были заполнены данными. Некоторые из них показаны.

Когда он открывается в Adobe Acrobat 11.0.9, форма отображается так, как ожидалось. Разделы & поля отображаются/скрыты, как диктует логика формы. Форма также заполняется, она не читается и не сглажена.

Когда я сравниваю параметры безопасности форм в Acrobat, vs Reader, в поле «Заполнение полей формы» в Acrobat установлено значение «Разрешено», в то время как в настройках безопасности читателя установлено значение «Не разрешено».

Вот ссылка на молнию, содержащее следующее: 1) Динамический PDF генерируется в iTextSharp 2) автоматически сгенерированный файл класса для формы 3) Отображение данных Program.cs файла

Link to Test file showcasing the issue

Когда файл открыт в Acrobat, он работает должным образом. Когда он открывается в Reader, он становится только для чтения, и отображаются как SignatureA, так и SignatureB, когда только один должен отображаться на основе того, какая радиомаяка выбрана в разделе «Проверка подписи».

У меня нет доступа к кодовой базе, поэтому я не могу проверить приложение на своем конце. Есть ли какие-либо настройки в iTextSharp, которые могут вызвать эту проблему?

Спасибо за любую помощь, которую вы можете предоставить!

+0

Вы должны по крайней мере обеспечить один образец файла. – yms

+0

Hi yms, сделаю. Просто нужно получить один сгенерированный. – SoupyNorman

+0

И наконец получил сгенерированный тест: https://onedrive.live.com/?id=F35E15F1F3E4F926%21107&cid=F35E15F1F3E4F926&group=0&parId=root&authkey=%21AIaCiR2ew0Du9%5Fc&action=locate – SoupyNorman

ответ

4

Ваш PDF не обновляется инкрементным обновлением, которое разрушает функцию «с включенным чтением» (цифровая подпись становится недействительной из-за полной перезаписи).

Вы должны создать экземпляр PdfStamper в режиме добавления:

iTextSharp.text.pdf.PdfStamper stamper = new iTextSharp.text.pdf.PdfStamper(reader, ms, '\0', true); 
+0

Блестящий, спасибо за помощь! Я пошлю это на dev. и, надеюсь, это будет трюк. Я наткнулся на это решение раньше, но отклонил его, поскольку мы не получали ошибку «Этот документ с расширенными функциями» в Reader. Я протестировал его на Adobe DC на ПК без администратора и получил эту ошибку. Если бы только я получил это раньше. – SoupyNorman

+0

Это действительно решение. Спасибо, Setasign! – SoupyNorman

Смежные вопросы