我使用iTextSharp来填充PDF中的字段。我希望PDF在用户打开时保持可编辑状态(即我不能将PDF压扁)。为什么我的PDF字段在Adobe Reader中保持空白?
问题是,当我戳记PDF并在Adobe Reader中查看值时,这些字段保持空白。 如果我戳的PDF,并平坦它,然后查看值然后这些字段确实有价值。
如何填充字段并保持PDF可编辑?
这里是我的方法的ASP.NET MVC行动:
public ActionResult GetPdfTWOWithSurname()
{
PdfHelpers _pdfHelper = new PdfHelpers(Server, Url, "~/Content/newForm.pdf");
var outStream = new MemoryStream();
var pdfReader = new PdfReader(_pdfHelper.GetPdfBytes());
var pdfStamper = new PdfStamper(pdfReader, outStream, '\0', true); //The 'true' value is important. Otherwise the document loses some dynamic features.
pdfStamper.Writer.CloseStream = false;
pdfStamper.FormFlattening = false; //Allow editing after close.
var fields = pdfStamper.AcroFields;
//Fill in text fields...
fields.SetField("topmostSubform[0].Page2[0].InvestorDetails_Surname[0]", "This is a surname");
pdfStamper.Close();
//Get outStream bytes and return...
outStream.Seek(0, SeekOrigin.Begin);
byte[] outBytes = new byte[outStream.Length];
outStream.Read(outBytes, 0, (int)outStream.Length);
return File(outBytes, "application/pdf", "ThePdfFileTWO.pdf");
}
注意,这个PDF启用的读者,我认为它保持这样即使在保存以来的Adobe阅读器显示“扩展”工具箱当我打开文件。这些字段仍然可编辑。
另请注意,PDF仍然是可编辑的,并且字段在Foxit PDF阅读器中具有值...。
请帮助