java web将数据导出为pdf格式文件代码片段
此片段达到的效果是:访问此请求,浏览器将打开新的界面并显示pdf文件预览,在文件预览界面可以下载该pdf文件。
1、jsp界面代码
<inputtype="button"class="btnbtn-info"onclick="getVerPdf();"target="_blank"value="导出为pdf文件"/>
2、js代码
functiongetVerPdf(){
window.open('/pms/jsp/version/getPrdVerListPdf?page='
+$("#getPage").html()+'&key='+$("#select").val());
}
3、java代码
/**
*
*Purpose:将产品版本列表导出为pdf格式
*
*@paramreq
*请求
*@paramresp
*应答
*@parampage
*当前页数
*/
@RequestMapping(value="getPrdVerListPdf")
publicvoidgetPrdTypeList(HttpServletRequestreq,HttpServletResponseresp,Integerpage,Stringkey){
resp.setContentType("application/pdf");
//弹框选择保存路径和文件名
//resp.setHeader("content-disposition",
//"attachment;filename=PrdVerList.pdf");
//得到当前页的数据
List<Version>verList=prdVersionSer.getAllPrdVersion(key);
if(verList.size()==0){
//如果没有数据,则返回主界面并显示提示消息
req.setAttribute("getFileMsg","没有符合条件的信息!");
req.setAttribute("select",key);
try{
req.getRequestDispatcher("/jsp/version/ver_list.jsp").forward(req,resp);
}catch(Exceptione){
e.printStackTrace();
}
}else{
//如果有数据,则显示pdf文件
JRBeanCollectionDataSourceds=newJRBeanCollectionDataSource(verList);
StringreportPath=null;
Map<String,Object>map=newHashMap<String,Object>();
if(key!=""){
map.put("prdName",verList.get(0).getPrdName());
}else{
map.put("prdName","");
}
reportPath=req.getServletContext().getRealPath("/reports/prdVerListByPrdName.jasper");
InputStreamis=null;
try{
is=newFileInputStream(reportPath);
JasperRunManager.runReportToPdfStream(is,resp.getOutputStream(),map,ds);
}catch(Exceptione){
e.printStackTrace();
}finally{
if(is!=null){
try{
is.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。