【问题标题】:Exporting a Jasper report to PDF output stream in web application将 Jasper 报告导出到 Web 应用程序中的 PDF 输出流
【发布时间】:2019-10-22 14:24:40
【问题描述】:

我正在开发一个网站,它应该会生成报告。 到目前为止,我已经获得了将报告导出到 PDF 输出流的代码,但我想知道如何将 PDF 返回给用户,或者我将如何查看它以查看它是否正常工作。

    InputStream template = 
    getClass().getResourceAsStream(invoice_template_path);

    JasperReport report = JasperCompileManager.compileReport(template);

    Map<String,Object> param = parameters(reservation);

    JasperPrint print = JasperFillManager.fillReport(report, param);

    File pdf = File.createTempFile("output","pdf");
    JasperExportManager.exportReportToPdfStream(print,new FileOutputStream(pdf));

【问题讨论】:

    标签: java spring-boot stream jasper-reports


    【解决方案1】:

    您可以使用 JRPdfExporter,然后将 JasperPrint 变量传递给 setExporterInput。下面的代码提供了更多细节:

    @GetMapping( produces = MediaType.APPLICATION_PDF_VALUE)
    public ResponseEntity<byte[]> getReport( ) throws Exception {
            /*
             here  you prepare your: JasperPrint print
           */
    
            //initiate exporter
            JRPdfExporter exporter = new JRPdfExporter();
            ByteArrayOutputStream pdfOutputStream = new ByteArrayOutputStream();
            exporter.setExporterInput(new SimpleExporterInput(print));
            exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(pdfOutputStream));
    
            SimplePdfReportConfiguration reportConfig = new SimplePdfReportConfiguration();
            reportConfig.setSizePageToContent(true);
            reportConfig.setForceLineBreakPolicy(false); 
          
                exporter.exportReport();
                res= pdfOutputStream.toByteArray();
       
            var headers = new HttpHeaders();
            headers.add("Content-Disposition", "inline; filename= filename.pdf");
            return ResponseEntity
                    .ok()
                    .headers(headers)
                    .contentType(MediaType.APPLICATION_PDF)
                    .body(res);
        }
    
    

    您可能已经有了答案,但这可能对其他人有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      相关资源
      最近更新 更多