private Response downloadMorePdf(List<Integer> billIdList) throws Exception { Response response = null; ByteArrayOutputStream bos = new ByteArrayOutputStream(); List<String> list = new ArrayList<String>(); for (int i = 0; i < billIdList.size(); i++) { Integer billId = billIdList.get(i); Map<String, Object> templateMap = getTemplateMap(billId); if (templateMap == null || templateMap.isEmpty()) { logger.info("账单数据不完整,无法下载账单"); continue; } StringBuffer fileNameStr = new StringBuffer(); Bill bill = billMapper.selectByPrimaryKey(billId); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); fileNameStr .append(bill.getAgencyNickName()) .append(sdf.format(bill.getBillStartTime())) .append("-") .append(sdf.format(bill.getBillEndTime())) .append(".") .append(".pdf"); // classpath 中模板路径,根据html模版来生成pdf String template = "pdfConfig/templates/test.html"; PdfDocumentGenerator pdfGenerator = new PdfDocumentGenerator(); // 生成pdf try { pdfGenerator.generate(template, getTemplateMap(billId), bos); } catch (DocumentGeneratingException e) { e.printStackTrace(); } list.add(fileNameStr.toString()); } zipFiles(list, bos); String zipFileName = date2String(new Date()) + ".zip"; response = Response.status(Status.OK) .header("Content-Type", "application/zip;charset=ISO8859-1") .header("Content-Disposition", "attachment; filename=\"" + zipFileName + "\"") .entity(bos.toByteArray()) .build(); return response; }
private Response downloadOnePdf(final @QueryParam("billId") Integer billId) throws Exception { Response response = null; Map<String, Object> templateMap = getTemplateMap(billId); if (templateMap == null || templateMap.isEmpty()) { logger.info("账单数据不完整,无法下载账单"); return null; } ByteArrayOutputStream bos = new ByteArrayOutputStream(); StringBuffer fileNameStr = new StringBuffer(); Bill bill = billMapper.selectByPrimaryKey(billId); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); fileNameStr .append(bill.getAgencyNickName()) .append(sdf.format(bill.getBillStartTime())) .append("-") .append(sdf.format(bill.getBillEndTime())) .append("."); fileNameStr.append(".pdf"); String fileName = new String(fileNameStr.toString().getBytes("GBK"), "ISO8859-1"); // classpath 中模板路径,根据html模版来生成pdf String template = "pdfConfig/templates/test.html"; PdfDocumentGenerator pdfGenerator = new PdfDocumentGenerator(); // 生成pdf try { pdfGenerator.generate(template, templateMap, bos); } catch (DocumentGeneratingException e) { e.printStackTrace(); } response = Response.status(Response.Status.OK) .header("Content-Type", "application/pdf;charset=ISO8859-1") .header("Content-Disposition", "attachment; filename=\"" + fileName + "\"") .entity(bos.toByteArray()) .build(); bos.close(); return response; }