当前位置: 首页 > 知识库问答 >
问题:

使用条形码或Qcode与Jasper报告

钱飞翼
2023-03-14

我有一个使用JSF和PrimeFaces开发的项目。我需要用Jasper在PDF上显示条形码。我怎样才能做到这一点?

共有1个答案

都乐逸
2023-03-14

我建议您使用barcode4j生成条形码(注意IReport已经可以处理这些问题,但我将向您展示java方法)。

制作一个返回条形码(图像)的方法。

public static synchronized Image getGS1_128Production(String codeProduzione) {

    if (codeProduzione==null){
        return null;
    }
    GS1_128 g = new GS1_128(codeProduzione);
    //Start personalizzing barcode
    int dpi = 150;
    if (code.length()>40){
        dpi = 100;
    }
    if (code.length()>57){
        dpi = 75;
    }

    c.doQuietZone(true);
    c.setQuietZone(5);
    c.setFontSize(2d);

    boolean antiAlias = false;
    int orientation = 0;

    BitmapCanvasProvider canvas = new BitmapCanvasProvider(dpi, BufferedImage.TYPE_BYTE_BINARY, antiAlias, orientation);
    c.generateBarcode(canvas, code);

    return canvas.getBufferedImage();
}

然后在jrxml中

<image scaleImage="Clip" hAlign="Center" vAlign="Middle" isUsingCache="false" onErrorType="Blank">
            <reportElement positionType="Float" x="65" y="66" width="405" height="82">
                <printWhenExpression><![CDATA[new Boolean($F{GS1_128}!=null)]]></printWhenExpression>
            </reportElement>
            <imageExpression class="java.awt.Image"><![CDATA[jdd.trace.barcode.BarCode4J.getGS1_128Production($F{GS1_128})]]></imageExpression>
</image>

注意:在我的例子中,静态metodogetGS1_128Production在我的类BarCode4J中,该类在包jdd.trace.barcode

此外,可以自然地使用非静态方法,例如将条形码图像作为参数传递,或将对象作为参数传递到jrxml中。

这些图像是可打印和可读的(用条形码阅读器测试),但是如果你喜欢高分辨率的图像,我建议你使用SVG而不是图像

 类似资料:
  • 我已经使用JRResultSetDataSource使用了Jasper报告,但这是我第一次使用JRBeanGrou 我正在尝试使用以下代码运行报告测试: 客户.java Report.java clientereport.jrxml Main.java 我得到以下错误: 我不知道我的代码有什么问题。

  • 问题内容: 我有一个 条形码 报告,该报告使用序列( Oracle 后端)生成我的 条形码 编号。 这是在我的查询: 我将此字段放置在设计器窗口中,该窗口将显示 条形码 值。 我有一个带有表情的图像: 以上是使用序列值的 条形码 。 我希望能够说打印/生成100或更多报告。目前,我一次只能生成一份报告。 因此,我的第一个猜测是获取一个提示用户输入值的参数,该值将指示要打印的 条形码 数量,每个 条

  • 我正在从. jasper文件加载jasper报告文件以提高性能,如下所示。 但是我现在有一个要求,动态形成的查询必须设置为. jasper(编译)文件。有没有办法做同样的事情?

  • 当我从SourceForge网站下载JasperReports项目时,我创建JavaFx项目,我需要使用JasperReports库创建发票设计。提取的文件夹不包含dist文件夹,该文件夹包含构建发票设计所需的jar文件。文件夹包含这个文件夹,这里有什么问题“我是JasperReports的新手”

  • 几周来,我一直在努力让Jasper reports工作。它在Eclipse中工作得很好,Jasper网站的演示也很好。在JBoss中,我的jsp页面无法使用它。 我的jsp页面非常基本。它调用类中的方法。它肯定达到了这一点,因为我有输出诊断。当我调用任何Jasper方法时,都会出现以下错误: 我已经到处转储jar文件。我甚至将这组jar转储到我的文件夹中。 蜡染-1.5 commons-beanu

  • 我的应用程序中有几个类似的报告,因此我创建了一个基本结构,在标题中有一个子报告,在页脚中有另一个子报告。 我不知道为什么我找不到解决这个问题的方法,如果有人能帮我...谢谢!