Я использовал простую динамическую форму PDF, созданную дизайнером Adobe LiveCycle, и попытался прочитать поле, используя версию iTextSharp 5.0/5.5, используя следующий код.
string pdfTemplate = @"c:\ExpandingTextBox.pdf";
PdfReader pdfReader = null;
pdfReader = new PdfReader(pdfTemplate);
StringBuilder sb = new StringBuilder();
foreach (var de in pdfReader.AcroFields.Fields)
{
sb.Append(de.Key.ToString() + Environment.NewLine);
}
pdfReader.Close();
Образец PDF можно загрузить по ссылке: https://forums.adobe.com/servlet/JiveServlet/download/2051245-11361/ExpandingTextBox.pdf
Но я всегда получаю нулевые поля, хотя я вижу поле в дизайнере Adobe Live Cycle. Я не уверен, что я здесь делаю. Любая помощь очень ценится.
pdfReader.AcroFields
в основном управляет формой Acroform, особенноAcroFields.Fields
содержит только поля Acroform. Вместо этого вы можете проверить атрибутAcroFields
Xfa
. - person mkl   schedule 07.08.2014AcroFields.Fields
Count останется равным 0; в вашем PDF нет полей AcroForm. - person mkl   schedule 07.08.2014System.out.printf("%s", pdfReader.getAcroFields().getXfa().getTemplateSom().getName2Node());
дает мне{form1[0].#subform[0].TextFieldContainer[0].TextField1[0]=[field: null]}
. - person mkl   schedule 08.08.2014