Jasper reports Jasper报告中的条形码创建:n ;是 ;不是 ;a ;有效 ;字符 ;对于 ;标准 ;2 ;of ;5 ;编码

Jasper reports Jasper报告中的条形码创建:n ;是 ;不是 ;a ;有效 ;字符 ;对于 ;标准 ;2 ;of ;5 ;编码,jasper-reports,Jasper Reports,在尝试使用Ireport 1.2.3创建条形码时出现以下错误 填充打印时出错 java.lang.RuntimeException:n不是标准的5取2编码的有效字符 在it.businesslogic.ireport.barcode.BcImage.getBarcodeImage(BcImage.java:73)中 在PrintIDCardreport_1452662388727_145783进行评估(PrintIDCardreport_1452662388727_145783:198) 在ne

在尝试使用Ireport 1.2.3创建条形码时出现以下错误

填充打印时出错

java.lang.RuntimeException:n不是标准的5取2编码的有效字符 在it.businesslogic.ireport.barcode.BcImage.getBarcodeImage(BcImage.java:73)中 在PrintIDCardreport_1452662388727_145783进行评估(PrintIDCardreport_1452662388727_145783:198) 在net.sf.jasperreports.engine.fill.jrelevaluator.evaluate(jrelevaluator.java:172) 在net.sf.jasperreports.engine.fill.JRCalculator.evaluate上(JRCalculator.java:556) 在net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:524) 位于net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:952) 位于net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:420) 位于net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:403) 位于net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275) 位于net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:399) 位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1289) 位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:631) 位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:228) 位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128) 位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:750) 位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:666) 位于net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89) 位于net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) 位于net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517) 在it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:680) 位于java.lang.Thread.run(未知源)

条形码创建代码:

<image  scaleImage="FillFrame" vAlign="Middle" hAlign="Center" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
    <reportElement
        mode="Opaque"
        x="32"
        y="123"
        width="50"
        height="10"
        forecolor="#000000"
        backcolor="#FFFFFF"
        key="barcode-1"/>
        <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
        <graphicElement stretchType="NoStretch" pen="None" fill="Solid" />
<imageExpression class="java.awt.Image"><![CDATA[it.businesslogic.ireport.barcode.BcImage.getBarcodeImage(13,$F{subjectno1},false,false,null,0,0)]]></imageExpression>
</image>

使用过的jar文件:barbike-1.1.jar、ireport.jar


我可以打印静态条形码表达式的条形码。

请参阅字母的
$F{subjectno1}
变量的值

如前所述,5个条形码标准中的第2个仅用于编码数字。
如果您必须在其中包含字母,请改为检查标准。

我们需要查看您BcImage.getBarcodeImage的相关部分,您的错误不在jasper报告中,而是在这一行BcImage.java:73,因为这个问题不可回答。感谢Tomasz,代码128没有问题,可以打印它,但问题在于int2of5,即使$F{subjectno1}是int类型字段,其中的数据是22。确实,请检查此字段的值。:)此外,您似乎使用了不受欢迎的方式打印条形码。看见如果这对你没有帮助,我就没有主意了。:)