元のフォームと新しいフォームの 2 つの PDF フォームがあります。新しいフォームにx
は追加の量がacro fields
ありますが、元の PDF フィールドはありません。
古い PDF のフィールドを新しい PDF フォームにマージしたいと考えています。新しいフィールドは、古いフィールドのプレースホルダーの一部を移動したため、重複したり、正しい場所にない場合がありますが、これは関係ありません。
私が試したこと
//Get the old PDF
PdfReader oldPdfReader = new PdfReader("Old.Pdf");
MemoryStream oldMs = new MemoryStream();
PdfStamper oldPdfStamper = new PdfStamper(oldPdfReader, oldMs);
//Get the new PDF
PdfReader newPdfReader = new PdfReader("New.Pdf");
MemoryStream newMs = new MemoryStream();
PdfStamper newPdfStamper = new PdfStamper(newPdfReader, newMs);
foreach(var oldField in oldPdfStamper.AcroFields.Fields)
{
//Do a check to see if the field isn't already added
if(!newPdfStamper.AcroFields.Fields.Any(x => x.Key == oldField.Key))
newPdfStamper.AcroFields.Fields.Add(oldField);
}
これは、デバッグがadd
.
次の例も試しました。
c#.net で iTextSharp を使用して複数の PDF をマージする
から新しいフィールドを配置しますが、からNew.PDF
のフィールドは引き継がれませんOld.PDF
。AcroFields
2 つの PDF フォームをマージする方法についてのアイデアはありますか?