1

基本的に私が持っているのは、コピー/貼り付けで作成されたフォームフィールドを含むPDFです(700以上:/)。問題は、Acrobat では、同じ名前のすべてのフィールドに同じ値を設定できることです。これは、各フィールドに一意の値を持たせたいという問題です。(Acrobat ソフトウェアでは、700 フィールドすべての名前を手動で変更する以外に解決策はありません)

Google で検索したところ、C# ライブラリの iTextSharp が見つかりました。そして、私はそれを使用する助けが必要です.Googleの検索では多くの答えが返されませんでした...

このコードは、コピー/貼り付けしたフィールドである 1 つのフィールドのみを返します...個々のフィールドではありません。

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 に答える