导出图片、PDF、PPT、动态图册文件
1、导出按钮 html
<div class="btn-group">
<a type="button" title="{{{true:'导出动态图册', false:'金会员特权:导出动态图册'}[isHtmlExport()]}}" class="btn no-border cs-btn-toolbar" ng-click="exportHtmlZip()" > <i class="icon-html"></i></a>
</div>
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);
List<ThemeDataVO> themeData = 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));
}
}
}
java导出静态页面html文件zip
猜你喜欢
转载自blog.csdn.net/taotao12312/article/details/77450178
今日推荐
周排行