title: Pdf form fields position retrieval with Itext
body: <p>With iTextSharp, I can retrieve all the form fields that are present in a PDF form.I'm using Adobe acrobat reader to edit the PDF, where I see, every field have a position attribute which denotes where the PDF field will reside in a form.</p>
  
  <p>So my question is, can I read that value ?</p>
  
  <p>For example if I have a form field Name in a PDF form, can I get the position value of this field, like left 0.5 inches, right 2.5 inches, top 2 inches, bottom 2 inches ?</p>
  
  <p>Right now I'm retrieving the form fields with the below code :</p>
  
  <pre><code>string pdfTemplate = @"D:\abc.pdf";
  PdfReader reader = new PdfReader(pdfTemplate);
  
  var fields = reader.AcroFields;
  
  int ffRadio = 1 &lt;&lt; 15;      //Per spec, 16th bit is radio button
  int ffPushbutton = 1 &lt;&lt; 16; //17th bit is push button
  int ff;
  
  //Loop through each field
  foreach (var f in fields.Fields)
  {
      String type = "";
      String name = f.Key.ToString();
      String value = fields.GetField(f.Key);
  
      //Get the widgets for the field (note, this could return more than 1, this should be checked)
      PdfDictionary w = f.Value.GetWidget(0);
  
      //See if it is a button-like object (/Ft == /Btn)
      if (!w.Contains(PdfName.FT) || !w.Get(PdfName.FT).Equals(PdfName.BTN))
      {
          type = "T";
      }
      else
      {
          //Get the optional field flags, if they don't exist then just use zero
          ff = (w.Contains(PdfName.FF) ? w.GetAsNumber(PdfName.FF).IntValue : 0);
  
          if ((ff &amp; ffRadio) == ffRadio)
          {
              //Is Radio
              type = "R";
          }
          else if (((ff &amp; ffRadio) != ffRadio) &amp;&amp; ((ff &amp; ffPushbutton) != ffPushbutton))
          {
              //Is Checkbox
              type = "C";
          }
          else
          {
              //Regular button
              type = "B";
          }
      }
  
      //MessageBox.Show(type + "=&gt;" + name + "=&gt;" + value);
      FormFields fld = new FormFields(name, type, value, "inputfield" +form_fields.Count);
  
      form_fields.Add(fld);
  
      if (type.Equals("T"))
          addContent(form_fields.Count);
  }
  </code></pre>