java web將數(shù)據(jù)導(dǎo)出為pdf格式文件代碼片段
更新時間:2020年11月25日 15:20:11 作者:夏詩鳶
這篇文章主要為大家詳細介紹了java web將數(shù)據(jù)導(dǎo)出為pdf格式文件代碼片段,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
此片段達到的效果是:訪問此請求,瀏覽器將打開新的界面并顯示pdf文件預(yù)覽,在文件預(yù)覽界面可以下載該pdf文件。
1、jsp界面代碼
<input type="button" class="btn btn-info" onclick="getVerPdf();" target="_blank" value="導(dǎo)出為pdf文件" />
2、js代碼
function getVerPdf() { window.open('/pms/jsp/version/getPrdVerListPdf?page=' + $("#getPage").html() + '&key=' + $("#select").val()); }
3、java代碼
/** * * Purpose :將產(chǎn)品版本列表導(dǎo)出為pdf格式 * * @param req * 請求 * @param resp * 應(yīng)答 * @param page * 當前頁數(shù) */ @RequestMapping(value = "getPrdVerListPdf") public void getPrdTypeList(HttpServletRequest req, HttpServletResponse resp, Integer page, String key) { resp.setContentType("application/pdf"); // 彈框選擇保存路徑和文件名 // resp.setHeader("content-disposition", // "attachment;filename=PrdVerList.pdf"); // 得到當前頁的數(shù)據(jù) List<Version> verList = prdVersionSer.getAllPrdVersion(key); if (verList.size() == 0) { // 如果沒有數(shù)據(jù),則返回主界面并顯示提示消息 req.setAttribute("getFileMsg", "沒有符合條件的信息!"); req.setAttribute("select", key); try { req.getRequestDispatcher("/jsp/version/ver_list.jsp").forward(req, resp); } catch (Exception e) { e.printStackTrace(); } } else { // 如果有數(shù)據(jù),則顯示pdf文件 JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(verList); String reportPath = null; Map<String, Object> map = new HashMap<String, Object>(); if (key != "") { map.put("prdName", verList.get(0).getPrdName()); } else { map.put("prdName", ""); } reportPath = req.getServletContext().getRealPath("/reports/prdVerListByPrdName.jasper"); InputStream is = null; try { is = new FileInputStream(reportPath); JasperRunManager.runReportToPdfStream(is, resp.getOutputStream(), map, ds); } catch (Exception e) { e.printStackTrace(); } finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。