首页 文章

使用itextsharp修改XFA表单PDF并生成PDF格式扩展功能错误

提问于
浏览
2

我试图通过修改包含2D条形码的XFA表单PDF来以编程方式设置字段值 . 我正在使用常规Adobe Reader打开PDF格式 . 这是一个错误“此文档在adobe reader中启用了扩展功能 . 文档自创建以来已更改,并且不再使用扩展功能 . 请联系本文档原始版本的作者”(注意: - 文件打开用Adobe杂技演员罚款)

以下是执行此操作的示例c#代码 .

var reader = new PdfReader(@"c:\abc.pdf");

// System.IO.FileStream fs = new FileStream(reader, System.IO.FileMode.CreateNew, FileAccess.ReadWrite);

var output = new MemoryStream();
var stamper = new PdfStamper(reader, output, '\0', true);

stamper.ViewerPreferences = PdfWriter.AllowModifyContents;

stamper.AcroFields.SetField("form1[0].#subform[0].Line1a_FamilyName[0]", "Family Name");

stamper.FormFlattening = false;

stamper.Close();
reader.Close();

Response.AddHeader("Content-Disposition", "attachment; filename=YourPDF.pdf");
Response.ContentType = "application/pdf";

Response.BinaryWrite(output.ToArray());
Response.End();

1 回答

  • 0

    请参阅iText的作者this post

    Bruno Lowagie于星期五,12/31/2010 - 16:37提交填写完表格后,我的PDF显示以下消息:此文档在Adobe Reader中启用了扩展功能 . 该文档自创建以来已更改,并且不再使用扩展功能 . 请联系作者以获取本文档的原始版本 . 我该如何避免这条消息?表单的创建者使文档Reader成为可能 . 只能使用Adobe软件完成阅读器启用 . 您可以通过两种方式避免此消息:1 . 删除使用权限 . 这将导致表单不再启用Reader . 例如:如果文档的创建者允许填写的表单可以在本地保存,则在删除使用权限后将无法再进行此操作 . 2.在追加模式下填写表格 . 这将导致更大的文件大小,但将保留Reader启用 . 有关详细信息,请阅读iText in Action中的第8.7.1节 .

相关问题