Jasper reports jasperReport中的QR码集成
我正在使用JAVA为我的计费桌面应用程序生成JasperReport,但是在jasper 6.0.3版本的报告中,我看不到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代码。然后我们可以使用
有人能推荐这个想法和二维码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)