Java JasperReports条形码打印

时间:2012-02-16 15:11:52

标签: java jasper-reports

我需要使用JasperReports报告打印条形码标签。我已经正确设计了Jasper报告,我可以使用iReport进行预览。但是当我通过Java应用程序将参数传递给jasper报告时,条形码报告从未生成。

使用以下代码

//Print barcode
try {
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection conn = (Connection) 
            DriverManager.getConnection("jdbc:mysql:///miracleposdb", "root", "mysql");


    String reportSource = "../src/reports/barcode.jrxml"; /* Report Path*/
    Map<String, Object> params = new HashMap<String, Object>();
    params.put("printid", lblbarcodeID.getText());

    JasperReport jasperReport = JasperCompileManager.compileReport(reportSource); /*Compiling  */

    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
            params, DB.MiraclePOS.connect());  /*Filling report*/
    JasperViewer.viewReport(jasperPrint, false);   /*For Print*/

} catch (Exception e) {
}

1 个答案:

答案 0 :(得分:0)

如果查看jrxml文件,条形码部分应如下所示:

在我的情况下,我使用 barcode4j

<componentElement>
    <reportElement x="353" y="42" width="200" height="50"/>
        <jr:Code39 xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components"    xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" textPosition="bottom">

            <jr:codeExpression>                 
                <![CDATA[$P{printid}]]>                     
            </jr:codeExpression>                
       </jr:Code39>
</componentElement>

我使用netbean report viewer来生成PDF视图,它对我有用。

注意:

使用iReport拖放条形码时,jrxml的条形码部分应为空CDATA:

<![CDATA[]]>

如果在这种情况下生成PDF,则由于没有值,因此不会显示条形码。

还要确保使用iReport设置参数。

希望这有帮助。