基本上我拥有的是带有复制/粘贴创建的表单字段的PDF(超过700个:/)。问题是,Acrobat允许所有具有相同名称的字段具有相同的值。这是一个问题,我希望每个字段都有一个唯一的值。 (除了手动重命名所有700个字段外,Acrobat软件不提供任何其他解决方案)
我用Google搜索并找到了一个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();
}
如何获得每个字段,然后重命名它们?感谢
答案 0 :(得分: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....