Jasper reports jasperReport中的QR码集成

Jasper reports jasperReport中的QR码集成,jasper-reports,qr-code,Jasper Reports,Qr Code,我正在使用JAVA为我的计费桌面应用程序生成JasperReport,但是在jasper 6.0.3版本的报告中,我看不到QR代码图标;在预览中,它会显示二维码,但不会显示在真实报告中 有人能推荐这个想法和二维码JAR文件吗?我终于找到了这个问题的答案 我们需要使用jar文件来导入内置的jasperReport二维码 这些是Jasper report生成二维码的jar文件 此外,该jar文件也适用于jasper报告,没有任何例外 然后我们必须从jasper报告元素拖放QR代码。然后我们可以使用

我正在使用JAVA为我的计费桌面应用程序生成JasperReport,但是在jasper 6.0.3版本的报告中,我看不到QR代码图标;在预览中,它会显示二维码,但不会显示在真实报告中


有人能推荐这个想法和二维码JAR文件吗?

我终于找到了这个问题的答案

我们需要使用jar文件来导入内置的jasperReport二维码 这些是Jasper report生成二维码的jar文件

此外,该jar文件也适用于jasper报告,没有任何例外

然后我们必须从jasper报告元素拖放QR代码。然后我们可以使用xml定义指定的参数

       <componentElement>
            <reportElement x="547" y="-5" width="115" height="83" uuid="f5bf25f8-2967-4e4e-bfa2-7879a3275e1c"/>
            <jr:QRCode xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                <jr:codeExpression><![CDATA["Customer No: " + $F{CUST_NO}]]></jr:codeExpression>
            </jr:QRCode>
        </componentElement>


这对我有用。

我很晚才写我的答案。但是我认为zxing是生成二维码的最好的开源库。在这里,我将介绍如何使用Java中的zxing库生成二维码。我使用iReport作为设计工具

步骤1:在iReport的类路径中添加2个jar文件(工具选项iReport选项卡类路径选项卡添加jar

a)
zxing核心
from

b)
zxing javase
from

注意:您可以选择最新的罐子。我使用的是截至日期的最新版本

步骤2:创建参数/字段(根据需要)。我正在使用一个参数。我们称之为qrCode

步骤3:从iReport designer的调色板面板拖放图像(在windows中,可以通过
Shift+ctrl+8
访问该图像)。然后选择取消(我们不需要静态图像)

第4步:单击图像选择图像。您将在右侧看到“属性”选项卡

a) 选择Expression类作为java.awt.Image

b) 单击图像表达式属性。并将表达式填充为

com.google.zxing.client.j2se.MatrixToImageWriter.toBufferedImage(
    new com.google.zxing.qrcode.QRCodeWriter().encode(
        $P{qrCode},
        com.google.zxing.BarcodeFormat.QR_CODE, 300, 300
    )
)
注意:如果要使用
字段
而不是
参数
,只需将表达式中的
参数
替换为
字段

步骤5:编译报告并运行


要了解不同的用法,请阅读post

什么是$p{qrCode}参数数据类型?是字符串吗?@Julius Prayogo是的,它属于
java.lang.string
数据类型。为避免
找到空内容
错误,您可以将表达式设置为
$P{qrCode}!=null&&$P{qrCode}.length()>0
我得到了这个错误:
java.lang.NoSuchMethodError:net.sf.jasperreports.engine.util.JRImageLoader.getInstance(Lnet/sf/jasperreports/engine/JasperReportsContext;)Lnet/sf/jasperreports/engine/util/JRImageLoader;net.sf.jasperreports.engine.RenderableUtil.getRenderable(RenderableUtil.java:173)