0
我有一個使用JSF和PrimeFaces開發的項目。我需要用Jasper在PDF上顯示條形碼。我怎樣才能做到這一點?在Jasper中使用條形碼或qcode報告
我有一個使用JSF和PrimeFaces開發的項目。我需要用Jasper在PDF上顯示條形碼。我怎樣才能做到這一點?在Jasper中使用條形碼或qcode報告
我建議你用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>
注:在我的例子中,靜態方法方法getGS1_128Production
是我的課 BarCode4J
是在包jdd.trace.barcode
內。此外,你自然可以使用非通過例如傳遞條形碼Image作爲參數或將對象作爲參數傳遞給jrxml來實現靜態metods。
這些圖像是可印刷性和可讀性(帶條形碼閱讀器測試),但如果你喜歡高清晰度的圖像,我建議你使用SVG而不是圖像
什麼是您的最終努力嗎? – soorapadman
要求對SO提出建議; ) –