登入  |  English
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。

列印出具有條碼的繳費單

Java Opensources for Web Development Part I:
嘗試使用來自 Opensource 的小工具(1)
Lession 7 : 列印出具有條碼的繳費單

在這個沒有真正安全的網路時代,有些人會擔心線上刷卡的風險,所以提供交易的廠商,往往需要多種通路的繳費機制,無論是讓便利商店、銀行或是郵局等代收機構,都會需要利用條碼來確認相關的金額與提供必要的資訊,以方便對帳與銷帳等機制。

然而,在開發繳費機制的系統,列印出表格和動態內容應該都不是難事,而是會思考該如何製作條碼的圖檔,所幸在 Java Opensources 之中,有許多條碼製作的元件。例如

* Barbecue,
* Krysalis 的 barcode4j,
* iText 也有 Barcode 的模組

我通常是利用 Barbecue 便可以製作出國內常用的條碼機制,將 Barbecue 的 jar ( barbecue-.jar ) 與 jdom.jar,放到 /WEB-INF/lib/ 之下。接著在 web.xml 之中加入設定 /barcode 對應到 BarcodeServlet。

<servlet-name>net.sourceforge.barbecue.BarcodeServlet</servlet-name>
    <display-name>Barbecue</display-name>
    <description>Barbecue - Java barcode generator</description>
         <servlet-class>
    net.sourceforge.barbecue.BarcodeServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>
    net.sourceforge.barbecue.BarcodeServlet
    </servlet-name>
    <url-pattern>/barcode</url-pattern>
</servlet-mapping>

接著,只要使用 <img src="<%=request.getContextPath%>/barcode?type=Code39&data=123456789&height=22&width=1"> 產生特有的編碼方式與資料內容,當然,你也要知道應該輸出的高與寬。就可以產生出一個 PNG 的圖檔顯示在你的頁面之中。

或是你想要在 Desktop Application 或 Servlet 直接產生出條碼,也可以利用:

Barcode barcode = BarcodeFactory.createCode39(“123456789”, true);
// Graphics2D and 顯示點 ( x, y )
barcode.draw(Graphics2D g, x, y, 1, 22 );
// 或是利用BarcodeImageHandler 作各類的輸出,包括 gif, jpeg, png 等
BarcodeImageHandler.saveJPEG(barcode, new File(“barcode.jpg”);




自由軟體鑄造場電子報 : 第 65 期 ICOS 2006 會議報導

分類: 技術專欄



評論 

 
0 #1 sarahlynnbr 2014-06-27 11:55
If you ever need to create a barcode image in Java: onbarcode.com/.../java_barcode, here's a guide that I found pretty helpful.
 
 
0 #2 Java Barcode 2015-01-13 14:11
你真厉害,谢谢你的分享,我学到 了很多。