1.所需jar包,见附件
asm-3.1.jar,commons-collections-2.1.1.jar, commons-digester-2.1.jar, commons-logging-1.0.4.jar
groovy-1.8.3.jar, itext-2.1.7.jar, jasperreports-3.7.0.jar
2.代码
public static void exportPdf(String sourcePath, String targetPath,Map<String, Object> map) {
JasperReport report = null;
JasperPrint jasperPrint = null;
JRDataSource dataSource = new JREmptyDataSource();
File file = new File(sourcePath);
// ByteArrayOutputStream targetStream = new ByteArrayOutputStream();
try {
report = (JasperReport) JRLoader.loadObject(file);
jasperPrint = JasperFillManager.fillReport(report, map, dataSource);
JRPdfExporter pdfExporter = new JRPdfExporter();
pdfExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
// 输出pdf
pdfExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,targetPath);
pdfExporter.exportReport();
// 输出byte[]
// pdfExporter.setParameter(JRExporterParameter.OUTPUT_STREAM,targetStream);
// pdfExporter.exportReport();
// byte[] bs = targetStream.toByteArray();
} catch (JRException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String sourcePath = "C:/a.jrxml";
String destPath = "C:/a.jasper";
// 将a.jrxml文件编译成a.jasper文件
JasperCompileManager.compileReportToFile(sourcePath, destPath);
String targetPath = "C:\\AAA.pdf";
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", "AAA");
exportPdf(destPath, targetPath, map);
System.out.println("convert to pdf successfully");
}