I\'m using pdftk to fill in a PDF form with an XFDF file. However, for this project I do not know in advance what fields will be present, so I need to analyse the PDF itself
C# / ITextSharp
public static void TracePdfFields(string pdfFilePath)
{
PdfReader pdfReader = new PdfReader(pdfFilePath);
MemoryStream pdfStream = new MemoryStream();
PdfStamper pdfStamper = new PdfStamper(pdfReader, pdfStream, '\0', true);
int i = 1;
foreach (var f in pdfStamper.AcroFields.Fields)
{
pdfStamper.AcroFields.SetField(f.Key, string.Format("{0} : {1}", i, f.Key));
i++;
//DoTrace("Field = [{0}] | Value = [{1}]", f.Key, f.Value.ToString());
}
pdfStamper.FormFlattening = false;
pdfStamper.Writer.CloseStream = false;
pdfStamper.Close();
FileStream fs = File.OpenWrite(string.Format(@"{0}/{1}-TracePdfFields_{2}.pdf",
ConfigManager.GetInstance().LogConfig.Dir,
new FileInfo(pdfFilePath).Name,
DateTime.Now.Ticks));
fs.Write(pdfStream.ToArray(), 0, (int)pdfStream.Length);
fs.Flush();
fs.Close();
}