Extract PDF form field names from a PDF form

前端 未结 6 1096
旧巷少年郎
旧巷少年郎 2020-12-29 05:24

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

6条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-29 05:52

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

提交回复
热议问题