导出图片、PDF、PPT、动态图册文件 1、导出按钮 html 2、导出按钮 js pdfManager.exportHtmlZip($scope.chartBookData.id,$scope.pagesTotalCount).then(function(meg){ toaster.clear(null, 'export'); toaster.pop('success', '', '导出动态图册成功'); $scope.exportPDFFlag=true; },function(err){ toaster.clear(null, 'export'); toaster.pop('error', '', '导出动态图册失败'); $scope.exportPDFFlag=true; }); exportHtmlZip:function(chartBookId,pageCount){ var defer = $q.defer(); var isIe=false; if(navigator.userAgent.indexOf("MSIE") > 0||navigator.userAgent.indexOf("rv:11.0")>0){ isIe=true; } var url = charts_server + '/service/export/gethtmlzip'; var form = document.createElement('form'); form.action = url; form.target = '_self'; form.method = 'post'; var input0 = document.createElement('input'); input0.type = 'hidden'; input0.name = 'file'; input0.value = chartBookId; form.appendChild(input0); var input1 = document.createElement('input'); input1.type = 'hidden'; input1.name = 'isIe'; input1.value = isIe; form.appendChild(input1); document.body.appendChild(form); form.submit(); document.body.removeChild(form); return defer.promise; } 3、 后端接受请求 java //动态html压缩包 @RequestMapping(value = "/export/gethtmlzip", method = RequestMethod.POST) public RestResult getHtmlZip(HttpServletRequest request, HttpServletResponse response) throws MalformedURLException { String tmpHtmlPath = null; try { String chartBookId=request.getParameter("file"); response.setContentType("application/zip"); ChartBookVO data = chartingManager.getChartBook(chartBookId);//获取图册模型 String exportName = data.getName(); String isIe=request.getParameter("isIe"); if("true".equals(isIe)){ exportName= java.net.URLEncoder.encode(exportName, "UTF-8"); exportName = exportName.replace( "+", "%20");//替换空格 }else{ exportName=new String(exportName.getBytes("utf-8"), "iso8859-1"); } response.setHeader("Content-Disposition", "attachment; filename=" + exportName + ".zip"); //response.setHeader("Content-Disposition", "attachment; filename=tubiaoxiu.zip"); OutputStream os = response.getOutputStream(); //html模板路径,下载html路径 String templatePath = request.getRealPath("/WEB-INF/htmlcode"); String pt = "tbx-html-" + UUID.randomUUID(); String tmpRoot = System.getProperty("java.io.tmpdir"); File file = new File(tmpRoot+File.separator+pt); file.mkdir(); tmpHtmlPath = file.getAbsolutePath(); ExportHtml.copyFolderWithSelf(templatePath,tmpHtmlPath); ListthemeData = chartingManager.getThemeData(chartBookId); String themeDataStr = mapper.writeValueAsString(themeData); ExportHtml.downloadBookTheme(themeDataStr,tmpHtmlPath); //下载图册模型到js文件 String bookDataStr = mapper.writeValueAsString(data);//获取图册模型字符串 ChartBookVO bookModuleData = mapper.readValue(bookDataStr, ChartBookVO.class);//另存一个图册模型 ChartBookVO bookModuleDataUpdate = ExportHtml.updateChartBook(bookModuleData,tmpHtmlPath);//获取图片和图表资源,修改图片路径 String bookDataStrDownload = mapper.writeValueAsString(bookModuleDataUpdate); ExportHtml.downloadBookModule(bookDataStrDownload,tmpHtmlPath); //下载图册模型到js文件 ExportHtml.zipMultiFile(tmpHtmlPath, os, true); return null; } catch (Throwable e) { logger.error(e.getMessage(), e); if (e instanceof BaseCSException) { return new RestResult((BaseCSException) e); } else { return new RestResult("html下载失败!"); } } finally { if (tmpHtmlPath != null) { ExportHtml.deleteDir(new File(tmpHtmlPath)); } } }