频道栏目
首页 > 资讯 > Java > 正文

java导出静态页面html文件zip

17-08-24        来源:[db:作者]  
收藏   我要投稿
导出图片、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);

            List 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));
            }
        }

    }           
相关TAG标签
上一篇:elasticsearch-HQ 使用
下一篇:git pull报错:Auto Merge Failed; Fix Conflicts and Then Commit the Result.
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站