我试图用PDFSharp以编程方式填写PDF表单,但遇到了一个奇怪的问题。在将文档中的字段替换为默认值后,我保存并通过电子邮件发送了PDF。当我像在Outlook中一样将PDF作为预览查看时,表单字段显示其默认值,但是当我下载并打开PDF时,将显示正确的值。
这是我生成PDF文件的方式。打开模板,填写字段,然后保存到新位置。
PdfDocument doc = PdfReader.Open(_pdfPath, PdfDocumentOpenMode.Modify);
if (doc.AcroForm.Elements.ContainsKey("/NeedAppearances") == false)
{
doc.AcroForm.Elements.Add("/NeedAppearances", new PdfBoolean(true));
}
else
{
doc.AcroForm.Elements["/NeedAppearances"] = new PdfBoolean(true);
}
PdfAcroField field = doc.AcroForm.Fields[key];
field.ReadOnly = false;
field.Value = new PdfString(row[Layout[key]].ToString());
field.ReadOnly = true;
doc.Save(newFilePath);
为什么根据观看者的不同显示?我该如何解决这个问题,或者有解决方法?
感谢您的帮助。
编辑 如果我打开填充的PDF(在Acrobat中)并再次关闭,即使没有进行更改,系统也会要求我保存更改,并且保存填充后的数据会显示在预览中。