单个或者多个jasper文件生成PDF文件





import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.JRLoader;








public class TestUtils {
 
public static void main(String[] args) throws JRException {
getFirst();
getPa();
}


private static void getFirst() throws JRException {
// 第一步:装载jasper文件
File jasperFileName = new File("c://test2.jasper");
// 第二步:设置参数值
/* 设置参数 */
HashMap<String, Object> params = new HashMap<String, Object>();// 建立参数表
params.put("name","我们的产品"); // 设置参数值
// 第三步:利用JasperRunManager生成PDF文件
JasperRunManager.runReportToPdfFile(jasperFileName.getPath(),
params, new JREmptyDataSource());
}

private static void getPa() throws JRException{
JRPdfExporter jrpdf = new JRPdfExporter();
JasperReport report1 = (JasperReport) JRLoader.loadObject(new File("c://test.jasper"));
JasperReport report2 = (JasperReport) JRLoader.loadObject(new File("c://test2.jasper"));
List<String> list = new ArrayList<String>();
list.add("测试数据");
JRBeanCollectionDataSource ds1 = new JRBeanCollectionDataSource(list);
JRBeanCollectionDataSource ds2 = new JRBeanCollectionDataSource(list);
HashMap<String, Object> params = new HashMap<String, Object>();// 建立参数表
params.put("name", "我们的产品"); // 设置参数值

JasperPrint jasperPrint = JasperFillManager.fillReport(report1,params,ds1);
JasperPrint jasperPrint2 = JasperFillManager.fillReport(report2,params,ds2);
List jasperPrintList = new ArrayList();
jasperPrintList.add(jasperPrint);
jasperPrintList.add(jasperPrint2);

File file = new File("c://Test.pdf");

ByteArrayOutputStream baos = new ByteArrayOutputStream();
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
exporter.exportReport();
byte[] bytes = baos.toByteArray();
// 确定写出文件的位置
try {
// 建立输出字节流
FileOutputStream fos = new FileOutputStream(file);
// 用FileOutputStream 的write方法写入字节数组
fos.write(bytes);
System.out.println("写入成功");
// 为了节省IO流的开销,需要关闭
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}



}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JasperReports是一个流行的报表生成框架,可以将报表导出成多种格式,包括JPG图片。以下是Java代码示例,演示如何使用JasperReports将jasper文件导出成JPG图片: ```java import java.io.File; import java.io.FileOutputStream; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; public class JasperToJpgExample { public static void main(String[] args) { try { // 加载jasper文件 File jasperFile = new File("report.jasper"); JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperFile); // 填充数据 Map<String, Object> parameters = new HashMap<String, Object>(); // 设置报表参数 parameters.put("param1", "value1"); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource()); // 导出为jpg图片 File jpgFile = new File("report.jpg"); FileOutputStream fos = new FileOutputStream(jpgFile); JasperExportManager.exportReportToPdfStream(jasperPrint, fos); System.out.println("Jasper报表已导出为JPG图片。"); } catch (Exception e) { e.printStackTrace(); } } } ``` 需要注意的是,上述代码使用了JREmptyDataSource类作为数据源,这意味着报表数据为空。如果需要填充数据,请使用适当的数据源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值