既存の PDF AcroField の単語を別の単語に置き換える必要があります。iTEXTSHARP の PDFStamper を使用して同じことを行っていますが、正常に動作しています。ただし、その際に新しい PDF を作成する必要があり、変更を既存の PDF 自体に反映させたいと考えています。元のファイル名と同じ宛先ファイル名を設定している場合、変更は反映されません。 iTextSharp を初めて使用しますが、間違っていることはありますか? 助けてください..私が使用しているコードを提供しています
private void ListFieldNames(string s)
{
try
{
string pdfTemplate = @"z:\TEMP\PDF\PassportApplicationForm_Main_English_V1.0.pdf";
string newFile = @"z:\TEMP\PDF\PassportApplicationForm_Main_English_V1.0.pdf";
PdfReader pdfReader = new PdfReader(pdfTemplate);
for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
PdfReader reader = new PdfReader((string)pdfTemplate);
using (PdfStamper stamper = new PdfStamper(reader, new FileStream(newFile, FileMode.Create, FileAccess.ReadWrite)))
{
AcroFields form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys)
{
//Replace Address Form field with my custom data
if (fieldKey.Contains("Address"))
{
form.SetField(fieldKey, s);
}
}
stamper.FormFlattening = true;
stamper.Close();
}
}
}