1

基本上我所拥有的是一个 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();
        }

如何单独获取每个字段然后重命名它们?谢谢

4

1 回答 1

0
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....
于 2016-09-06T15:52:34.387 回答