2015-01-07 78 views
1

這裏是目前的問題: 我有一個由第三方創建的XFA表單,我想按原樣使用它。 我能夠產生具有填充字段中的PDF:透明圖像在xfa.fillXfaForm之後顯示爲黑色框。是否支持xfa填充的透明圖像?

a) Extracting the XML via Acrobat Pro 
b) filling the fields within the XML and calling 
      XfaForm xfa = form.getXfa(); 
      xfa.fillXfaForm(new FileInputStream(XML)); 

我想要做的就是印記的圖像/水印在其中有一個表格W /多領域第2頁。我打印的「DRAFT」png圖像具有透明背景,因此如果疊加層工作,圖像背景應使底層顯示,看起來圖像文本位於pdf頁面的頂部。

如果這不是XFA形式,我想要完成的事情將會變得微不足道。我只是使用iText的pdfStamper並在第二頁上貼上這個透明的PNG,但是由於我現在只限於使用Adobe LiveCycle Designer,所以我注意到在XFA文件中,這個非XFA文件中的這件平凡任務並不是那麼簡單。 從之前的文章中,我瞭解到我無法將技術混合在一起。我必須在非XFA(AcroForms)與XFA(由Adobe LiveCycle Designer構建)之間進行選擇。基本上,我不能做一個fillXFA然後使用壓模,所以我必須弄清楚如何使用XFA來做到這一點。

我已經嘗試了下面的步驟作爲一個靜態的PDF和一個動態的PDF ....它並沒有什麼區別什麼類型的PDF。

1)在Adobe LiveCycle Designer中,我進入了源PDF的第二頁並定義了2個圖像字段。

overlay1 - this will span the top portion width of the page which has text 
      content underneath 
    overlay2 - this will span the lower portion width of the page which has text 
      content underneath 

2)作爲測試...我選擇的圖像爲overlay1具有透明背景,它是 前景背景作爲DRAFT 在設計時...草案透明度圖像的工作和它被放置在內容的頂部正確 爲imageField:overlay1。 我保存了修改後的基於XFA的PDF,在Acrobat Pro中打開了它,並導出了XFA XML結構。 我驗證了overlay1將DRAFT圖像作爲base64編碼的字符串。

<overlay1 xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:contentType="image/png" 
>iVBORw0KGgoAAAANSUhEUgAACWAAAAJYCAYAAADmY91UAAAACXBIWXMAAC4jAAAuIwF4pT92AABH 
....... 
....... 

3)當我採取了同樣的基地64串,只有進入它的overlay2中的內容,並呈現它通過fillXFA方法......形象是一個黑盒子來代替。 我也在Acrobat Pro中打開文件,然後雙擊imageField區域,選擇透明圖像,它仍然顯示爲黑色框。 我重複了上一步的圖像w /不透明,它的矩形白色背景 覆蓋它下面的所有東西。

4)我繼續做了另一個圖像......一個沒有透明度的圖像。 DRAFT沒有透明度,它的背景是白色的。 我有它以base64格式編碼。 我能夠將它放在overlay1 & overlay2圖像域中,沒有任何問題。 新問題在於草稿圖像的白色背景涵蓋了背後的所有內容。

爲什麼初始透明png在Adobe LifeCycle Design(設計時間)期間工作,而在 fillXFA調用後顯示爲黑匣子?但如果我改變圖像不使用透明度在 所有......一切正常?

在xfa填充過程中,XFA不支持圖像字段的透明圖像嗎?請記住,這期間 設計,工作時間,當我告訴的Adobe LiveCycle Designer中使用這種透明PNG該字段。

我基本上想的XFA在PDF中創建了一個特定的頁面圖像2個水印。

我目前的備份計劃是平整PDF(取消XFA),並使用Acrobat Pro將所有字段放回表單並使用標準PDF itext調用並使用壓模填充它(這將要因爲有一堆字段,所以很乏味)。但我想知道如果任何人有過做同樣的重量/ XFA PDF表單之前,我看選項B.

+0

會看到如果發生這種情況,如果我使用支持透明度 –

回答

2

所以我更換了同樣的透明的PNG圖像與GIF透明圖像。在base64中編碼的GIF圖像工作。我可以創建一個新的GIF文件瓦特/透明度,Base64編碼它,取代以前的&它仍然工作。看起來像PNG的XFA表單中呈現

+0

iText的不看圖像另一種文件格式的錯誤。它只需要您的XML,並將其未加改變地添加到數據集 - XFA流的一部分。我很高興地看到,GIF格式的工作,但我很好奇,爲什麼PNG不起作用。也許它不被Adobe Reader支持... –