2009-10-28 24 views
3

我正在使用一個將生成禮品證書的Web應用程序(使用Grails)。我正在考慮這樣的工作流程:其中Java/Groovy庫覆蓋圖像上的文本

  1. 用戶將選擇一個模板,它將作爲圖像存儲。

  2. 然後文本(名稱,日期,金額等),將在圖像上被覆蓋,使最終的證書。有一組與每個模板相關的座標,描述了每一位文本的放置位置。

  3. 有一種在其中顯示了用戶的最終證書將是什麼樣子的瀏覽器「實時預覽」的。

  4. 當用戶滿意的結果,他們下載證書爲PDF和打印。

任何人都可以推薦一個Java庫(或Groovy),這將使它很容易做到這一點?我對速度並不特別擔心,因爲我懷疑web應用程序一次只能由少數人使用。

更新:最後,我使用iText PDF庫將覆蓋PDF模板上的文本使用PDFStamper。

回答

0

你可能會考慮使用Batik這樣做,因爲SVG。您的圖片將是<img>標記,您的文字將是一個或多個<文字>標記。有一個轉換器(稱爲FOP,我相信),它會得到你的PDF輸出。

+0

感謝您的建議 - 我不敢相信我沒有想過使用SVG,這是一個好主意。將文本位設置爲可縮放的對象可能會使得更容易弄清楚如何將它們放入模板中的空間中,而不必通過弄亂字體大小。 – mojones 2009-10-28 12:34:28

4

您可以使用標準Java 2D圖形庫執行此操作 - 從圖像創建一個BufferedImage,使用get its Graphics並使用drawString()將文本置頂。當然,文本將成爲PDF格式中位圖的一部分,而不是使用完整的打印分辨率。

1

除了上面的答案,我遇到了groovy庫GraphicsBuilder和Grails插件j2D,這些也是potiential解決方案。