当我发送jasper报告进行打印时,打印机将文档名称显示为“jasper report-report name”(当有打印阙时,文档名称也是“jasper report”)。如何将其更改为其他名称?
答案 0 :(得分:7)
样本:
JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jrPrint = JasperFillManager.fillReport(jasperReport, params, getDataSource());
if (reportName != null && reportName.length() > 0) {
jrPrint.setName(reportName);
}
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
printRequestAttributeSet.add(MediaSizeName.ISO_A4);
PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
printServiceAttributeSet.add(new PrinterName("PDFCreator", null));
JRPrintServiceExporter exporter = new JRPrintServiceExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jrPrint);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, printRequestAttributeSet);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, printServiceAttributeSet);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.TRUE);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.TRUE);
exporter.exportReport();
您可以借助 name
属性在报告模板中设置报告名称:
<jasperReport .. name="Sample report name to print" ..>
答案 1 :(得分:1)
我偶然发现了这个,如果你在你想要的名字前加一个'/',它将从打印名称中删除“JasperReports - ”字符串。
JasperPrint jrPrint = JasperFillManager.fillReport(jasperReport, params, getDataSource());
if (reportName != null && reportName.length() > 0) {
jrPrint.setName('/'+reportName);
}
答案 2 :(得分:0)
我遇到了与您相同的问题,很高兴我认为我找到了解决该问题的方法。
第404行:
printerJob.setJobName("JasperReports - " + jasperPrint.getName());
因此,显然,我们只需要编辑以下代码行(删除““ JasperReports-” +“部分)并进行编译,并使用我们的自定义jar分发包即可。
我现在唯一的问题是我尚未测试它,因为我从未从源代码编译过一个软件包。当我弄清楚如何编译和测试它时,我将更新我的答案。