См. эту ветку пару лет назад , в которой говорится о смешивании полей 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, он тоже может сломаться.