2

我正在尝试通过修改包含 2D Barcode 的 XFA Forms PDF 以编程方式设置字段值。我在使用常规 Adob​​e Reader 打开结果 PDF 时遇到麻烦。这是一个错误“此文档在 adobe reader 中启用了扩展功能。该文档自创建以来已更改,扩展功能的使用不再可用。请联系该文档原始版本的作者”(注:-文件打开Adobe acrobat 很好)

以下是执行此操作的示例 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();
4

1 回答 1

0

请参阅iText 作者的这篇文章

Bruno Lowagie 于 2010 年 12 月 31 日星期五 - 16:37 提交

填写完我的表格后,我的 PDF 显示以下消息:此文档启​​用了 Adob​​e Reader 中的扩展功能。该文档自创建以来已更改,并且不再使用扩展功能。请联系作者获取本文档的原始版本。如何避免此消息?

表单的创建者启用了文档阅读器。阅读器启用只能使用 Adob​​e 软件完成。您可以通过两种方式避免此消息:

1. 删除使用权限。这将导致不再启用 Reader 的表单。例如:如果文档的创建者允许将填写的表格保存在本地,则在删除使用权限后将不再可能。
2. 以追加方式填写表格。这将导致更大的文件大小,但将保留阅读器启用。有关更多信息,请阅读 iText in Action 的第 8.7.1 节。

于 2013-04-22T19:35:21.133 回答