2015-02-23 91 views
0

我正在一個項目,應該閱讀一個PDF文件/窗體,其中包含由Java代碼填充的值。acroform字段值不工作icepdf

form.setField("permitnumber", p.getApplicationorno()); 
      form.setField("amountpaid", p.getAmount_app()); 
      form.setField("estimatedfeet", "56"); 
      form.setField("receiptnumber", "123415"); 
      form.setField("validity", "5"); 

現在我的問題是,分別設置在PDF表單的字段中的值上的Adobe PDF閱讀器,但不是在ICEPdf瀏覽器完美。我在這裏錯過了什麼?爲什麼PDF格式的值不能由ICEPdf顯示?

+1

您使用哪個PDF庫來填充值?你可以分享一個樣本PDF嗎? – mkl 2015-02-24 05:10:58

+0

我正在使用iText來填寫PDF中的值... – 2015-03-05 23:25:58

+0

根據源文檔和您的代碼,iText確實或不會創建表單字段外觀。你的里程是多少? – mkl 2015-03-05 23:38:31

回答

0

在設置利用iText的字段值,如果af是你AcroFields例如,嘗試設置值之前做

af.setGenerateAppearances(true); 


的PDF說明書ISO 32000-1限定NeedAppearances標誌,比照表格218 - 交互式表單詞典中的條目。如果它設置爲true,PDF閱讀器知道它必須爲表單域創建外觀流。

iText的解釋該標誌並且僅創建外觀流,同時填寫表格,如果標誌不爲(如果真,觀看者預計重新創建反正這樣外觀)。

Ooo至少用於創建PDF表格,該標誌設置爲true。如果爲真,Adobe Reader確實尊重該標誌並創建外觀。可能您的PDF閱讀器不尊重標誌,可能它總是期望已經存在於文檔中的外觀。

使用setGenerateAppearances(true)您可以強制執行外觀流生成。如果上述假設是正確的,這應該解決您的問題。