我可以生成PDF並將其刷新到瀏覽器。但是,現在我的要求發生了變化。我需要生成多個pdf並將它們保存在一個zip文件中並將其刷新到瀏覽器。我跟着這http://www.avajava.com/tutorials/lessons/how-can-i-create-a-zip-file-from-a-set-of-files.html使用Java將多個pdf文件壓縮成單個文件zip文件
但無法找到如何在我的代碼集成。這是我的代碼。任何想法將不勝感激。
for(int i = 0; i < 5 ; i++) {
byte[] documentBytes = TSService.generateDocument(dealKey, i);
String documentType = TSUtil.getDocumentType(i);
response.setHeader("Content-Disposition", "attachment;filename="+documentType);
response.setContentType("application/pdf");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, postcheck=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentLength(documentBytes.length);
ServletOutputStream out = response.getOutputStream();
out.write(documentBytes);
out.flush();
out.close();
}
最初我只有在循環中的代碼。現在,我想根據i值生成5個報告。亞歷克斯
String documentType = TSUtil.getDocumentType(Integer.valueOf(documentKey));
response.setHeader("Content-Disposition", "attachment;filename=dd.zip");
response.setContentType("application/zip");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, postcheck=0, pre-check=0");
response.setHeader("Pragma", "public");
ServletOutputStream out = response.getOutputStream();
ZipOutputStream zout = new ZipOutputStream(out);
for(int i = 1; i <= 5 ; i++) {
byte[] documentBytes = TSService.generateDocument(dealKey, i);
ZipEntry zip = new ZipEntry(i+".pdf");
zout.putNextEntry(zip);
zout.write(documentBytes);
zout.closeEntry();
}
zout.close();
你在這個outpustream使用在一個ZipOutputStream,沖洗所有的PDF格式,那麼結果在瀏覽器中刷新 – Tuco
@Tuco,你能PLZ發佈示例代碼段? – Yakhoob