java根据模板生成,导出word和pdf(aspose.words实现word转换pdf) 向右看齐 2023-08-17 17:43 108阅读 0赞 相关一部分java文件和jar包 [https://github.com/momodashen/words.git][https_github.com_momodashen_words.git] ![1465843-20190725155333973-197975914.png][] ![1465843-20190725153623506-509121710.png][] pom文件 <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-words</artifactId> <version>18.2</version> </dependency> word模板 其中<forEach>的内容要在设置在表格里面 ![1465843-20190725151913560-1625594040.png][] js导出方法 function f_export(){ var rowsdata = gridManager.getSelectedRow(); if (!rowsdata) { $.ligerDialog.alert('请先选择一行!'); return; } manwait = $.ligerDialog.waitting("正在导出,请稍候..."); var statDate = rowsdata.statDate; $.ajax({ type : "POST", url:'${ctx}/dp/schedulingLogQuery!exportView.action', data:$("#form").serializeArray(), dataType : "json", cache: false, success : f_success }); } action代码 public void exportView(){ ISchedullingFetchMap fetchmap = (ISchedullingFetchMap) this.getMap(); fetchmap.generation(modelId,TimeUtil.parseDate(statDate), shiftId); Map<String, Object> map = new HashMap<>(); map.put("status", 200); JSONObject jsonObject = JSONObject.fromObject(map); ResponseUtil.print(jsonObject.toString()); } map代码 生成words和pdf public void generation(Long modelId, Date parseDate, Long shiftId) { List<Map<String, Object>> fetchList= this.findFetchs(modelId, parseDate, shiftId); Map<String, Object> varValues = new HashMap<String, Object>(); Model model = (Model) this.getPersistQuery().findById(Model.class, modelId); varValues.put("name", model.getModelName()); varValues.put("dateStr", parseDate); List<Map<String, Object>> fetchs = new ArrayList<>(); //varValues.put("fetchs", fetchList); for (Map<String, Object> map : fetchList) { Map<String, Object> map2 = new HashMap<String, Object>(); String content = map.get("demo").toString(); map2.put("demo", content); map2.put("fetchName", map.get("fetchName").toString()); fetchs.add(map2); } varValues.put("fetchs", fetchs); //根据msword报表模板生成msword String tmpFilename = ServletActionContext.getServletContext().getRealPath("/template/***.docx");//模板文件 //要导出文件 String workFilename = ServletActionContext.getServletContext().getRealPath("/reportWorkSpace/**********.docx"); Report report = new Report(); report.tmpFilename = tmpFilename; report.workFilename = workFilename; report.varValues = varValues; report.transformDOCX(); } report.transformDOCX();实现根据模板转成word并转成pdf,html,xps,png等,该java文件可在上方连接获取 public void transformDOCX() { //载入模板文件 msword.report.Operate.load(this); //解析 msword.report.Operate.execute(this); //再替换没有匹配的${}为空字符 msword.report.Operate.scavengeSuperfluous(this); //保存工作文件 msword.report.Operate.save(this); //转换为pdf文件 aspose.Operate.convertasPdf(this); //转换为html文件 // aspose.Operate.convertasHtml(this); //转换为xps文件 // aspose.Operate.convertasXps(this); //转换为png文件 // aspose.Operate.convertasPng(this); } 分别下载word文件和pdf文件 <iframe align="middle" id="belowFrame" name="main" frameborder="0" scrolling="no" src="" width="99%" height="0" ></iframe> //下载word function f_success(data){ if (data.status == 200) { //ligerUi提示 var manager = $.ligerDialog.tip({ title : '提示', content : '操作成功!' }); manwait.close(); setTimeout(function() { manager.close(); }, 3000); document.getElementById("belowFrame").contentWindow.location.href="${pageContext.request.contextPath}//reportWorkSpace/********.docx"; setTimeout(function() { parent.window.frames[thisTabId].f_closeWindow(); }, 100); } else { $.ligerDialog.closeWaitting(); $.ligerDialog.error(data.message); } } //下载pdf function f_success(data){ if (data.status == 200) { //ligetUi提示 var manager = $.ligerDialog.tip({ title : '提示', content : '操作成功!' }); manwait.close(); //定时关闭提示 setTimeout(function() { manager.close(); }, 3000); window.location.href='${ctx}/dp/schedulingLogQuery!exportPdfView.action'; setTimeout(function() { parent.window.frames[thisTabId].f_closeWindow(); }, 100); } else { $.ligerDialog.closeWaitting(); $.ligerDialog.error(data.message); } } 下载pdf后台代码 public void exportPdfView(){ HttpServletRequest request = ServletActionContext.getRequest(); String TEMPLATE_FILE = "/reportWorkSpace/*******.pdf"; String templatePath1 = BaseService.getInstance().getRealPath(TEMPLATE_FILE); File file=new File(templatePath1); String fileName=file.getName(); String agent=(String)request.getHeader("USER-AGENT"); //判断浏览器类型 try { if(agent!=null && agent.indexOf("Fireforx")!=-1) { fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1"); //UTF-8编码,防止输出文件名乱码 } else { fileName=URLEncoder.encode(fileName,"UTF-8"); } } catch (Exception e) { e.printStackTrace(); } OutputStream os=null; HttpServletResponse response = ServletActionContext.getResponse(); response.reset(); response.setCharacterEncoding("utf-8"); response.setContentType("application/pdf"); // pdf格式 response.setHeader("Content-Disposition", "attachment; filename=" + fileName); try { BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file)); byte[] b=new byte[bis.available()+1000]; int i=0; os = response.getOutputStream(); //直接下载导出 while((i=bis.read(b))!=-1) { os.write(b, 0, i); } os.flush(); os.close(); } catch (IOException e) { e.printStackTrace(); }finally { if(os!=null) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } } } 转载于:https://www.cnblogs.com/hnzkljq/p/11244220.html [https_github.com_momodashen_words.git]: https://github.com/momodashen/words.git [1465843-20190725155333973-197975914.png]: /images/20230808/c61b222b996b478a82def8589f4059ae.png [1465843-20190725153623506-509121710.png]: /images/20230808/1fa1d697b5aa4615acdefa345d047323.png [1465843-20190725151913560-1625594040.png]: /images/20230808/7b8b0b9c5a97440f9a458615207e1234.png
还没有评论,来说两句吧...