十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
關(guān)于JasperReport的基礎(chǔ)應(yīng)用參考:
IReport+JasperReport+Applet報(bào)表打印
應(yīng)用IReport+JasperReport處理含中文二維碼的思路與過(guò)程。
在報(bào)表中展現(xiàn)二維條碼。
適應(yīng)掃描器操作處理(中文轉(zhuǎn)義)。
結(jié)合JS使用條碼。
第一部分 在報(bào)表中展現(xiàn)二維條碼:
參考:iReport中產(chǎn)生二維條碼(QR Code)
思路:應(yīng)用zxing工具包生成二維碼的圖形,并寫(xiě)入在IReport報(bào)表的圖像組件中。
步驟1:下載core.jar和javase.jar。
步驟2:引入IReport。
打開(kāi)iReport,“工具”—“選項(xiàng)”—“classpath”,然后“Add JAR”,選擇上面提到的兩個(gè)jar文件。
圖片1:
加入圖像組件,并設(shè)定內(nèi)容表達(dá)式,圖片2:
圖像組件的表達(dá)式內(nèi)容:
com.google.zxing.client.j2se.MatrixToImageWriter.toBufferedImage(
new com.google.zxing.qrcode.QRCodeWriter().encode(
new String($P{Code}.getBytes("UTF-8"), "ISO-8859-1")
,com.google.zxing.BarcodeFormat.QR_CODE,100,100))
即:將報(bào)表參數(shù)Code進(jìn)行轉(zhuǎn)碼(處理中文亂碼問(wèn)題)后進(jìn)行QRCode編碼并寫(xiě)入緩存的圖像對(duì)象中。
同時(shí),為了便于在運(yùn)行時(shí)分析,我們建立1個(gè)文本框,表達(dá)式輸入為:
new String($P{Code}.getBytes("UTF-8"), "ISO-8859-1")
即:將報(bào)表參數(shù)Code進(jìn)行轉(zhuǎn)碼結(jié)果輸入至文本框。
運(yùn)行效果,圖片3:參數(shù)Code輸入“測(cè)試漢字1”
此時(shí)的二維碼在手機(jī)上微信進(jìn)行掃描的話,可以識(shí)別的。圖片4:
若基于手機(jī)作為終端的話,這樣已經(jīng)可以使用了,若使用掃描器進(jìn)行讀取的話則存在新的問(wèn)題。
第二部分 適應(yīng)掃描器操作處理
掃描器處理二維條碼一般會(huì)模擬鍵盤輸入,而中文內(nèi)容無(wú)法直接被鍵盤處理。在圖片3的運(yùn)行效果圖中,文本框內(nèi)顯示的亂碼內(nèi)容,就是掃描器接收反饋的內(nèi)容,即基于鍵盤輸入模擬的掃描器是無(wú)法正確處理二維碼中文內(nèi)容的。
考慮一個(gè)曲線救國(guó)的辦法,將中文內(nèi)容的“UTF-8編碼串”轉(zhuǎn)為字符形式的“ISO-8859-1”編碼,將二維碼的編碼內(nèi)容修改為,同時(shí)加入新的文本框顯示響應(yīng)內(nèi)容:
java.net.URLEncoder.encode(
new String($P{Code}.getBytes("UTF-8"), "ISO-8859-1")
,"ISO8859-1")
同時(shí)為了便于調(diào)試,增加回顯文本框,表達(dá)式為:
java.net.URLDecoder.decode(
java.net.URLEncoder.encode(
new String($P{Code}.getBytes("UTF-8"), "ISO-8859-1")
,"ISO8859-1")
, "utf-8")
如圖片5:
其運(yùn)行效果如圖片6:
至此中文內(nèi)容以其UTF-8編碼串的內(nèi)容出現(xiàn)在了二維碼中。
第三部分 結(jié)合JS使用條碼
應(yīng)用條碼掃描器模擬鍵盤輸入后,網(wǎng)頁(yè)文本框內(nèi)將會(huì)得到條碼值,本例中值為“%E6%B5%8B%E8%AF%95%E6%B1%89%E5%AD%971”
應(yīng)用javascript函數(shù)decodeURIComponent即可回復(fù)其中文內(nèi)容,圖片7:
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。