2013-04-22 34 views
2

我試圖通過修改包含二維條形碼的XFA表單PDF來編程設置字段值。我使用普通Adobe Reader打開了重新生成PDF格式。這是一個錯誤「這個文件啓用了adobe reader中的擴展功能。文檔自創建以來已經發生了變化,擴展功能的使用已不再可用。請聯繫本文原始版本的作者」(注意: - 文件打開罰款與Adobe雜技演員)XFA表單PDF使用itextsharp進行修改並生成PDF給出擴展功能錯誤

以下是一個示例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(); 

回答

0

通過的iText的作者見this post

布魯諾Lowagie於星期五,12/31/2010 - 16:37

填寫我的表格後,我的PDF顯示以下信息:此文檔在Adobe Reader中啓用了擴展功能。該文檔自創建以來已更改,並且不再使用擴展功能。請聯繫作者本文檔的原始版本。我如何避免此消息?

表單的創建者已啓用文檔閱讀器。閱讀器啓用只能使用Adobe軟件完成。您可以通過兩種方式避免此消息:

1.刪除使用權限。這將導致不再啓用Reader的表單。例如:如果文檔的創建者允許填寫的表單可以在本地保存,那麼在刪除使用權之後將不再可能。
2.在追加模式下填寫表格。這將導致更大的文件大小,但Reader啓用將被保留。 欲瞭解更多信息,請閱讀iText的8.7.1節。

+0

克里斯感謝您的快速Reply.Yes,我填寫表格只在附加模式和(reader.RemoveUsageRights()),誤差肯定有助於但對我來說二維條碼變成unusable.After我填寫任何表單字段PDF條碼變成灰色圖像。任何想法爲什麼? – user2308616 2013-04-22 19:48:13

+0

您可以使用adobe livecycle服務器es4來獲取條形碼閱讀器擴展 – 2013-11-19 09:49:37