我使用iTextSharp填充PDF中的字段。我希望PDF在用户打开时保持可编辑状态(即我无法展平PDF)。
问题在于,当我标记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 Reader在打开文件时会显示“扩展”工具箱。这些字段仍然可以编辑。
另请注意,PDF仍然可以编辑,并且字段在FoxitPDF阅读器中具有值....
请帮助
答案 0 :(得分:0)
我有同样的问题,只有在使用带有扩展功能的Adobe Acrobat创建PDF时才会发生这种情况。我找到的唯一选项是重新创建表单,以便弹出框没有理由弹出。 GL
答案 1 :(得分:0)
http://what-when-how.com/itext-5/preserving-the-usage-rights-of-reader-enabled-forms-itext-5/