资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Ireport+JS处理扫描中文二维码-创新互联

关于JasperReport的基础应用参考:

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比南充网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式南充网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖南充地区。费用合理售后完善,10余年实体公司更值得信赖。

IReport+JasperReport+Applet报表打印

应用IReport+JasperReport处理含中文二维码的思路与过程。

  1. 在报表中展现二维条码。

  2. 适应扫描器操作处理(中文转义)。

  3. 结合JS使用条码。

第一部分 在报表中展现二维条码:

    参考:iReport中产生二维条码(QR Code)

    思路:应用zxing工具包生成二维码的图形,并写入在IReport报表的图像组件中。

    步骤1:下载core.jar和javase.jar。

    步骤2:引入IReport。

    打开iReport,“工具”—“选项”—“classpath”,然后“Add JAR”,选择上面提到的两个jar文件。

    图片1:

  Ireport+JS处理扫描中文二维码

    加入图像组件,并设定内容表达式,图片2:

    Ireport+JS处理扫描中文二维码

    图像组件的表达式内容:

    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))

    即:将报表参数Code进行转码(处理中文乱码问题)后进行QRCode编码并写入缓存的图像对象中。

    同时,为了便于在运行时分析,我们建立1个文本框,表达式输入为:

        new String($P{Code}.getBytes("UTF-8"), "ISO-8859-1")

    即:将报表参数Code进行转码结果输入至文本框。

    运行效果,图片3:参数Code输入“测试汉字1”

    Ireport+JS处理扫描中文二维码

    此时的二维码在手机上微信进行扫描的话,可以识别的。图片4:

    Ireport+JS处理扫描中文二维码

    若基于手机作为终端的话,这样已经可以使用了,若使用扫描器进行读取的话则存在新的问题。

第二部分 适应扫描器操作处理

    扫描器处理二维条码一般会模拟键盘输入,而中文内容无法直接被键盘处理。在图片3的运行效果图中,文本框内显示的乱码内容,就是扫描器接收反馈的内容,即基于键盘输入模拟的扫描器是无法正确处理二维码中文内容的。

    考虑一个曲线救国的办法,将中文内容的“UTF-8编码串”转为字符形式的“ISO-8859-1”编码,将二维码的编码内容修改为,同时加入新的文本框显示响应内容:

    java.net.URLEncoder.encode(

      new String($P{Code}.getBytes("UTF-8"), "ISO-8859-1")

    ,"ISO8859-1")

    同时为了便于调试,增加回显文本框,表达式为:

    java.net.URLDecoder.decode(

        java.net.URLEncoder.encode(

            new String($P{Code}.getBytes("UTF-8"), "ISO-8859-1")

        ,"ISO8859-1")

    , "utf-8")

如图片5:

Ireport+JS处理扫描中文二维码

其运行效果如图片6:

Ireport+JS处理扫描中文二维码

至此中文内容以其UTF-8编码串的内容出现在了二维码中。

第三部分 结合JS使用条码

    应用条码扫描器模拟键盘输入后,网页文本框内将会得到条码值,本例中值为“%E6%B5%8B%E8%AF%95%E6%B1%89%E5%AD%971”

    应用javascript函数decodeURIComponent即可回复其中文内容,图片7:

Ireport+JS处理扫描中文二维码

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:Ireport+JS处理扫描中文二维码-创新互联
文章源于:http://cdkjz.cn/article/pidoj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220