读取和重命名多个字段具有相同的名称与iTextSharp

本文关键字:iTextSharp 重命名 字段 读取 | 更新日期: 2023-09-27 18:15:59

基本上我有,是一个PDF与表单字段创建与复制/粘贴(其中超过700个:/)。问题是,Acrobat允许所有具有相同名称的字段具有相同的值。这是一个问题,我希望每个字段都有一个唯一的值。(Acrobat软件不提供任何解决方案,只能手动重命名所有700个字段)

我搜索了一下,发现了一个c#库,iTextSharp。我需要一些帮助使用它,谷歌搜索没有返回太多答案…

这段代码只返回一个字段,这是我复制/粘贴…而不是单个字段。

PdfReader reader = new PdfReader("p31.pdf");
        using (FileStream fs = new FileStream("Test Out.pdf", FileMode.Create)) {
            PdfStamper stamper = new PdfStamper(reader, fs);
            AcroFields fields = stamper.AcroFields;
            foreach(KeyValuePair<string, AcroFields.Item> kpv in fields.Fields)
            {
                System.Console.WriteLine(kpv.Key);
            }
            stamper.Close();
        }

我如何单独获得每个字段,然后重命名它们?由于

读取和重命名多个字段具有相同的名称与iTextSharp

PdfReader reader = new PdfReader("OriginalPDF");
PdfCopyFields copier = new PdfCopyFields(new FileStream("NewPDF", FileMode.Create));
int doc = 0;
foreach ( var item in reader.AcroFields.Fields )
  if ( item.Key.IndexOf("NameField") != -1 )
    reader.AcroFields.RenameField(item.Key, "NameField" + ( doc++ ));
 copier.AddDocument(reader, "1");   

 //Now you have finalPDF wiith Namefield1,Namefield2,Namefield3....