我正在将现有应用程序从 Java 移植到 C#。原始应用程序使用 IText 库来填充 PDF 表单模板并将它们保存为新的 PDF。我的 C# 代码(示例)如下:
string templateFilename = @"C:\Templates\test.pdf";
string outputFilename = @"C:\Output\demo.pdf";
using (var existingFileStream = new FileStream(templateFilename, FileMode.Open))
{
using (var newFileStream = new FileStream(outputFilename, FileMode.Create))
{
var pdfReader = new PdfReader(existingFileStream);
var stamper = new PdfStamper(pdfReader, newFileStream);
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys)
{
form.SetField(fieldKey, "REPLACED!");
}
stamper.FormFlattening = true;
stamper.Close();
pdfReader.Close();
}
}
只有当我省略
stamper.FormFlattening = true;
行,但随后表格显示为...表格。当我添加这一行时,设置到表单字段的任何值都会丢失,从而导致空白表单。我真的很感激任何建议。