如何更改Jasper报告打印名称

时间:2011-11-18 13:57:44

标签: java jasper-reports

当我发送jasper报告进行打印时,打印机将文档名称显示为“jasper report-report name”(当有打印阙时,文档名称也是“jasper report”)。如何将其更改为其他名称?

3 个答案:

答案 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();
  • 使用iReport(编辑报告模板)

    您可以借助 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)

我遇到了与您相同的问题,很高兴我认为我找到了解决该问题的方法。

https://github.com/TIBCOSoftware/jasperreports/blob/master/jasperreports/src/net/sf/jasperreports/engine/export/JRPrintServiceExporter.java

第404行:

printerJob.setJobName("JasperReports - " + jasperPrint.getName());

因此,显然,我们只需要编辑以下代码行(删除““ JasperReports-” +“部分)并进行编译,并使用我们的自定义jar分发包即可。

我现在唯一的问题是我尚未测试它,因为我从未从源代码编译过一个软件包。当我弄清楚如何编译和测试它时,我将更新我的答案。