0

私はPrimeFacesを使用しています。

コマンドリンクpdf生成を含む1つのデータテーブルがあります

このリンクをクリックすると、pdfを新しいブラウザで開きたいと思います。

PDFとしての生成レポートの私のコード:

HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
String reportPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/report/personReport.jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(reportPath);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

ArrayList<PersonReportBean> arrayList = new ArrayList<PersonReportBean>();
arrayList.add(bean); // here bean populate with all data
JRBeanCollectionDataSource collectionDataSource = new JRBeanCollectionDataSource(arrayList);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap<String, Object>(), collectionDataSource);
response.setContentType("application/pdf");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
exporter.exportReport();
FacesContext.getCurrentInstance().responseComplete();
4

1 に答える 1

0

これを試すことができますか:

JasperExportManager.exportReportToPdfStream(jasperPrint,response.getOutputStream());

それ以外の:

JRPdfExporter exporter = new JRPdfExporter();   
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());   
exporter.exportReport();   
于 2012-08-23T09:29:47.320 に答える