Java JasperReports Печать штрих-кода
Мне нужно распечатать этикетки со штрих-кодом, используя JasperReports
составление отчетов. Я правильно спроектировал отчет Jasper и могу просмотреть его, используя iReport
, Но когда я передаю параметр в отчет яшмы через приложение Java, отчет о штрих-коде никогда не генерируется.
следующий код используется
//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 ответ
Если вы посмотрите на 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 для создания просмотра PDF, и это работает для меня.
НОТА:
Когда вы перетаскиваете штрих-код с помощью iReport, раздел barcord в jrxml должен иметь пустой CDATA:
<![CDATA[]]>
Если вы сгенерируете PDF в этом состоянии, то баркорд не будет отображаться, поскольку в нем нет значения.
Также не забудьте установить параметр с помощью iReport.
Надеюсь это поможет.