最近在公司项目中用到了 ireport 和jasperreport来生成PDF 用ireport画的模板就不附上了。直接看生成pdf的部分。 private void generatePDF(String jasperFilePath, String pdfFilePath, CotsFIRCAlertDTO alertDto) throws Exception { log.info("enter generatePDF......"); List tmpList = new ArrayList(); try { tmpList.add(alertDto); File jasper = new File(jasperFilePath); JasperReport jasperReport = (JasperReport) JRLoader.loadObjectFromLocation(jasper.getPath()); JRBeanCollectionDataSource collectionDataSource = new JRBeanCollectionDataSource(tmpList);//tmpList 是从数据库中查到的数据必须是List类型 JasperPrint jasperPrint = (JasperPrint) JRLoader.loadObject(JasperFillManager.fillReportToFile(jasperFilePath, null, collectionDataSource)); JRPdfExporter exporter = new JRPdfExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, pdfFilePath); exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8"); exporter.exportReport(); } catch (JRException e) { log.error("CotsFIRCAlertCtlr.generatePDF:"+e.getMessage(), e); throw e; } }