如何修复在预览中未填写但打开时已填写的PDF表单

时间:2020-07-08 13:40:26

标签: c# .net pdf pdfsharp

我试图用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中)并再次关闭,即使没有进行更改,系统也会要求我保存更改,并且保存填充后的数据会显示在预览中。

0 个答案:

没有答案
相关问题