Search code examples
adobeitextlivecycle-designer

Failed to read fields from Dynamic PDF form using iTextSharp


I have used simple dynamic pdf form which generated from Adobe LiveCycle designer and trying to read the field using iTextSharp 5.0/5.5 version using following code.

            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();

Sample PDF can be downloaded from the link: https://forums.adobe.com/servlet/JiveServlet/download/2051245-11361/ExpandingTextBox.pdf

But i am always getting zero fields even though i see the field in adobe live cycle designer. I am not sure what i am doing here. Any help greatly appreciated.


Solution

  • I have used FillXfaForm method to fill the dynamic pdf form as show below. Before you doing this, you need to make sure you create dynamic pdf form in adobe live cycle.

            string pdfTemplate = @"c:\test.pdf";
            string newFile = @"c:\new_test.pdf";
            string xmlForm = @"C:\fill_test.xml";
    
                PdfReader pdfReader = new PdfReader(pdfTemplate);
                PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(
                    newFile, FileMode.Create));                
                pdfStamper.AcroFields.Xfa.FillXfaForm(xmlForm);
                pdfStamper.FormFlattening = false;
    
                pdfStamper.Close();
                pdfReader.Close();
    

    Please let me know if anybody needs help in understanding this.