客户端打印pdf以及服务器打印(jasperreport)

try {

File reportFile = (File) map.get("reportFile");
String mediaSizeNameISO = (String) map.get("mediaSizeNameISO");
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());
Map parameters = new HashMap();
String formatter = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()); //当前系统时间

String paramName = "print_sale_bill";
String paramValue = cargoParamDao.getParamValue(paramName);
if ("1".equals(paramValue)) {
JasperPrint jasperPrint =
JasperFillManager.fillReport(jasperReport, parameters, dataSource.getConnection());
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
if (MediaSizeNameISOB6.equals(mediaSizeNameISO)) {
printRequestAttributeSet.add(MediaSizeName.ISO_B6);
}
if (MediaSizeNameISOB5.equals(mediaSizeNameISO)) {
printRequestAttributeSet.add(MediaSizeName.ISO_B5);
}
if (MediaSizeNameISOA4.equals(mediaSizeNameISO)) {
printRequestAttributeSet.add(MediaSizeName.ISO_A4);
}
PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
JRPrintServiceExporter exporter = new JRPrintServiceExporter();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, printRequestAttributeSet);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, printServiceAttributeSet);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.FALSE);
exporter.exportReport();
dataSource.close();
} else {
try {
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),
parameters, dataSource.getConnection());
if (bytes != null && bytes.length > 0) {
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=" + new String((pdfTitle + formatter + ".pdf").getBytes(), "iso-8859-1"));
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
} catch (Exception e) {
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
response.setContentType("text/plain");
response.getOutputStream().print(stringWriter.toString());
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("html.jsp ERROR:" + e.getMessage());
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值