Заполните выпадающий список в PDF с ITextSharp - PullRequest
1 голос
/ 02 августа 2011

Я создал PDF-форму с livecycle. статический pdf. Теперь я хочу заполнить некоторые поля этого PDF. У меня нет проблем с текстовым полем, но у меня есть проблема с выпадающим списком. он пуст, и я хочу его заполнить.

PdfReader pdfReader = new PdfReader(pdfTemplate);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create));
AcroFields pdfFormFields = pdfStamper.AcroFields;

pdfFormFields.SetField("Dep", "44");
pdfFormFields.SetField("grp", "0");
pdfFormFields.SetListOption("gardien", new string[] { "English", "German", "French", "Spanish", "Dutch" }, new string[] { "EN", "DE", "FR", "ES", "NL" });

первые два SetField не имеют проблем, это работает. но SetListOption дает мне эту ошибку:

Указанный ключ отсутствует в словаре

Можете ли вы помочь мне, плз, я что-то упустил?

1 Ответ

1 голос
/ 02 августа 2011

См. эту ветку пару лет назад , в которой говорится о смешивании полей PDF с тем, что создает Designer / LiveCycle, который выглядит как поля формы.

В основном iText (и, следовательно, iTextSharp) поддерживает только SetField для полей, созданных с помощью LiveCycle.

Тем не менее, обходной путь - использовать имя поля вместо его имени.Вы можете найти имя ключа, введя foreach в свойстве pdfFormFields.Fields.В итоге вы получите что-то вроде topmostSubform[0].Page1[0].DropDownList1[0].

Как только вы получите это, вы можете сделать:

pdfFormFields.SetListOption("topmostSubform[0].Page1[0].DropDownList1[0]", new string[] { "English", "German", "French", "Spanish", "Dutch" }, new string[] { "EN", "DE", "FR", "ES", "NL" });

ОЧЕНЬ ВАЖНО !! Значенияустановленный здесь будет работать с Adobe Reader / Acrobat, но будет игнорироваться LiveCycle.Если вы создаете PDF-документ изнутри LiveCycle, но у вас нет причин когда-либо открывать его снова, тогда вы найдете.Если вы вообще полагаетесь на XFA, он тоже может сломаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...