java实现在线预览功能,需要用到  jacob.dll jacob.jar   预览pdf所需js  pdfobject.min.js

将上传文件转为pdf保存。

    <divclass="control-group"><labelclass="control-label">文件:</label><divclass="controls"><inputtype="file"name="file"id="ck_attach_path"style="width:98%;"/></div></div>

后台保存文件并将文件转换为pdf

    @RequiresPermissions("ha01:haHyjhb:edit")@RequestMapping(value= "save")public String save(HaHyjhb haHyjhb, @RequestParam MultipartFile file,Model model, RedirectAttributes redirectAttributes,HttpServletRequest request, HttpServletResponse response) throwsIOException, ParseException {haHyjhb.setBh(hybh);String xdlj= request.getSession().getServletContext().getRealPath("userfiles")+"\\hy"+haHyjhb.getLx()+"\\"+dateStr+"\\"+hybh+"\\";String path= "";if(!file.isEmpty()){  HaHyzlb haHyzlb= newHaHyzlb();SimpleDateFormat df= new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式String filename= df.format(new Date());    //保存在服务器的随机文件名//材料编号
haHyzlb.setClhb(filename);haHyzlb.setHybh(hybh);xdlj=xdlj.replaceAll("\\\\", "/");haHyzlb.setLj(xdlj);haHyzlb.setCllx("0");String aa[]=file.getOriginalFilename().split("[.]");String fileName=filename+"."+aa[aa.length-1];haHyzlb.setClywjm(file.getOriginalFilename());haHyzlb.setClmc(fileName);//保存文件
publicUtils.saveFile(file, xdlj,filename, request, response);haHyzlbService.save(haHyzlb);}else{request.setAttribute("msg", "未选择需上传的文件");}haHyjhbService.save(haHyjhb);addMessage(redirectAttributes,"保存会议计划成功");}return "redirect:"+Global.getAdminPath()+"/ha01/haHyjhb/?repage";}

public static voidsaveFile(@RequestParam MultipartFile file,String xdlj,String filename, HttpServletRequest request, HttpServletResponse response) {String path= "";String pdfname= filename + ".pdf";    //装换成pdf文件的名称String refilename= "";    //上传文件的名称if(!file.isEmpty()){//获取上传文件的原名称refilename=file.getOriginalFilename();String aa[]=refilename.split("[.]");filename=filename+"."+aa[aa.length-1];xdlj=xdlj.replaceAll("\\\\", "/");File fpath= newFile(xdlj);if(!fpath.exists()){fpath.mkdirs();}try{  MultipartFile mfile=file;if(mfile!=null){  File localFile= new File(xdlj+filename); path=localFile.getPath();try{  mfile.transferTo(localFile);//将上传文件写到服务器上指定的文件ToPDF top=newToPDF();top.convert2PDF(xdlj+filename, xdlj+pdfname);}catch(IllegalStateException e) {  e.printStackTrace();  }catch(IOException e) {  e.printStackTrace();  }  }  }catch(Exception e) {  e.printStackTrace();  request.setAttribute("msg", refilename+"上传失败");  } }else{request.setAttribute("msg", "未选择需上传的文件");}}

转换pdf工具类

packagecom.thinkgem.jeesite.modules.bc.bc01.web;importjava.io.File;importcom.jacob.activeX.ActiveXComponent;importcom.jacob.com.ComFailException;importcom.jacob.com.ComThread;importcom.jacob.com.Dispatch;public classToPDF {private static final int wdFormatPDF = 17;private static final int xlTypePDF = 0;private static final int ppSaveAsPDF = 32;private static final int msoTrue = -1;private static final int msofalse = 0;/*jacob配置* 把jacob.dll放入 Java\jdk1.5.0_06\jre\bin目录下.把jacob.jar放入 Java\jdk1.5.0_0\jre\lib\ext*/  //直接调用这个方法即可public booleanconvert2PDF(String inputFile, String pdfFile) {String suffix=getFileSufix(inputFile);File file= newFile(inputFile);if(!file.exists()){System.out.println("文件不存在!");return false;}if(suffix.equals("pdf")){System.out.println("PDF not need to convert!");return false;}if(suffix.equals("doc")||suffix.equals("docx")||suffix.equals("txt")){returnword2PDF(inputFile,pdfFile);}else if(suffix.equals("ppt")||suffix.equals("pptx")){returnppt2PDF(inputFile,pdfFile);}else if(suffix.equals("xls")||suffix.equals("xlsx")){returnexcel2PDF(inputFile,pdfFile);}else{System.out.println("文件格式不支持转换!");return false;}}public staticString getFileSufix(String fileName){int splitIndex = fileName.lastIndexOf(".");return fileName.substring(splitIndex + 1);}public booleanword2PDF(String inputFile,String pdfFile){ActiveXComponent app= null;  Dispatch doc= null;boolean result=true;try{//打开word应用程序app = new ActiveXComponent("Word.Application");//设置word不可见app.setProperty("Visible", false);//获得word中所有打开的文档,返回Documents对象Dispatch docs = app.getProperty("Documents").toDispatch();//调用Documents对象中Open方法打开文档,并返回打开的文档对象Documentdoc =Dispatch.call(docs,"Open",inputFile,false,true).toDispatch();Dispatch.call(doc,"ExportAsFixedFormat",pdfFile,wdFormatPDF//word保存为pdf格式宏,值为17
);result= true;}catch(Exception e){result= false;}finally{if (doc != null) {  Dispatch.call(doc,"Close");  }if (app != null) {  app.invoke("Quit");  }}returnresult;}public booleanexcel2PDF(String inputFile,String pdfFile){ActiveXComponent app= null;  Dispatch excel= null;boolean result=true;try{app= new ActiveXComponent("Excel.Application");app.setProperty("Visible", false);Dispatch excels= app.getProperty("Workbooks").toDispatch();excel=Dispatch.call(excels,"Open",inputFile,false,true).toDispatch();Dispatch.call(excel,"ExportAsFixedFormat",xlTypePDF,      pdfFile);result= true;}catch(Exception e){result= false;}finally{if (excel != null) {  Dispatch.call(excel,"Close");  }if (app != null) {  app.invoke("Quit");  }  }returnresult;}public booleanppt2PDF(String srcFilePath, String pdfFilePath){ActiveXComponent app= null;  Dispatch ppt= null;boolean result=true;try{  ComThread.InitSTA();  app= new ActiveXComponent("PowerPoint.Application");  Dispatch ppts= app.getProperty("Presentations").toDispatch();//因POWER.EXE的发布规则为同步,所以设置为同步发布ppt = Dispatch.call(ppts, "Open", srcFilePath, true,//ReadOnlytrue,//Untitled指定文件是否有标题false//WithWindow指定文件是否可见
).toDispatch();  Dispatch.call(ppt,"SaveAs", pdfFilePath, 32); //ppSaveAsPDF为特定值32
result=true; //set flag true;} catch(ComFailException e) {  result=false;  }catch(Exception e) {  result=false;  }finally{if (ppt != null) {  Dispatch.call(ppt,"Close");  }if (app != null) {  app.invoke("Quit");  }  ComThread.Release();  }returnresult;}
}

预览文件

  <c:iftest="${haHyjhb.cllist ne null and haHyjhb.cllist.size() ne 0}"></br><h4>会议文件列表</h4></br><tableid="contentTable"class="table table-striped table-bordered table-condensed"><thead><tr><th>文件名</th><th>预览</th></tr></thead><tbody><c:forEachitems="${haHyjhb.cllist}"var="haHyjhb"><tr><td>${haHyjhb.clywjm }</td><td><ahref="javascript:void(0);"onclick="filescan('${haHyjhb.id}')">预览</a></td></tr></c:forEach></tbody></table></c:if>

functionfilescan(fileid){top.$.jBox.open("iframe:${ctx}/ha01/haHyjhb/scan?id="+fileid, "文件预览",800,$(top.document).height()-100,{buttons:{"确定":"ok", "关闭":true}, submit:function(v, h, f){}, loaded:function(h){$(".jbox-content", top.document).css("overflow-y","hidden");}, closed:function(){}});}

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<html>
<head><title>资料信息管理</title><styletype="text/css">html,body,#content{width:100%;height:100%;margin:0;padding:0;}</style><scripttype="text/javascript">window.onload= function(){                                   //项目名称varfilepath="${pageContext.request.contextPath}/"+"${saMyclbClxx.lj}".split("/dxzjzx_wz/")[1];varname="${saMyclbClxx.clmc}";vara=name.split(".");varhzm=a[a.length-1];//后缀名varwjm=name.split("."+hzm)[0];//文件名if(hzm=="txt"||hzm=="doc"||hzm=="docx"||hzm=="xls"||hzm=="xlsx"||hzm=="ppt"||hzm=="pptx"||hzm=="pdf"){filepath=filepath+wjm+".pdf";PDFObject.embed(filepath,"#content");//var success = new PDFObject({ url:filepath ,pdfOpenParams: { scrollbars: '0', toolbar: '0', statusbar: '0'}}).embed("content1");
}else if(hzm=="png"||hzm=="jpeg"||hzm=="gif"||hzm=="jpg"){$("#content").html("<img style='background-size:contain|cover;width:100%;height: auto;' src='"+filepath+name+"'  id='ylimg'/>");}else if(hzm=="wav"||hzm=="mp3"||hzm=="midi"||hzm=="wma"||hzm=="swf"||hzm=="flv"||hzm=="wmv"||hzm=="asf"||hzm=="asx"||hzm=="mid"||hzm=="rm"||hzm=="rmvb"||hzm=="mp4"||hzm=="mov"||hzm=="avi"||hzm=="ram"){$("#content").html("<video  src='"+filepath+name+"' controls='controls'></video>");}else{alert("该文件格式不支持预览");}}</script>
</head>
<body><ulclass="nav nav-tabs"></ul><br/><form:formid="inputForm"modelAttribute="saSqmyxxb"action="${ctx}/sa01/saSqmyxxb/save"method="post"class="form-horizontal"><sys:messagecontent="${message}"/>        <divid="content"></div>   </form:form><scripttype="text/javascript"src='${ctxStatic}/js/pdfobject.min.js'></script></body>
</html>

转载于:https://www.cnblogs.com/yypr/p/10754941.html

Java实现在线预览功能相关推荐

  1. java实现在线预览功能(支持xlx,word,ppt,dwg等格式转Pdf)

    offoce转pdf文件预览,基于aspose-cad,aspose-cells,aspose-words,aspose-slides实现word,xls,ppt,dwg转pdf文件预览 之前基于op ...

  2. 快速实现word、excel、ppt、txt等办公文件在线预览功能(Java版)

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/weixin_40986713/ article/details/109527294 java实现办公文件在线预览功能是一个大家 ...

  3. java零碎要点010---Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  4. Java 实现word、excel、ppt、txt等办公文件在线预览功能!

    大家好,我是宝哥! 如何用 Java 实现word.excel.ppt.txt等办公文件在线预览功能?本文告诉你答案! java 实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司 ...

  5. 手把手教你用 Java 实现word、excel、ppt、txt等办公文件在线预览功能!

    如何用 Java 实现word.excel.ppt.txt等办公文件在线预览功能?本文告诉你答案! java 实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司专门提供这样的服务, ...

  6. java 预览word文档_Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  7. 前端【vue】实现文档在线预览功能,在线预览pdf、word、xls、ppt等office文件

    前端江太公 前端实现文档在线预览功能 最直接的就是使用XDOC 文档云服务 XDOC可以实现预览以DataURI表示的DOC文档,此外XDOC还可以实现文本.带参数文本.html文本.json文本.公 ...

  8. word转图片 java_Java 利用LibreOffice将Office文档转换成 PDF,进而转图片,实现在线预览功能...

    项目中需要将 Office 文档上传并实现在线预览,用到了 LibreOffice 将 Office 文档转换为 PDF 文档,然后再用 pdfbox 将 PDF 转为图片. 本文介绍借助 Libre ...

  9. window下实现在线预览功能

    window下实现在线预览功能 最近用到文档在线预览功能,之前没接触过,一切从零开始,整了一段时间终于实现,现在把方法分享给大家! 一.主要思路 先将其他格式的文档(office文档.txt.图片等等 ...

最新文章

  1. 智能计算升级背后:华为“不想再搬砖”
  2. mysql 事务 数量_如何知道数据库创建以来并发事务的最大数量
  3. python访问数据库日志文件_python利用inotify实现把nginx日志实时写入数据库
  4. JFreeChart设置背景图片 .
  5. 通过Dapr实现一个简单的基于.net的微服务电商系统(八)——一步一步教你如何撸Dapr之链路追踪
  6. 基础编程题目集 6-13 折半查找 (15 分)
  7. curl以cookie的方式登录
  8. 3D开发-AR.js Nginx HTTPS服务搭建
  9. 【千月二开美化版】畅视福利影院APP源码+畅视影视源码+对接苹果CMS【已测试】
  10. Android百度地图修改定位时间间隔
  11. GIT原理,知其然,知其所以然
  12. After Effects快捷键
  13. 未来属于智能,智能存在未在每个角落-称重
  14. HttpProxy网络请求代理
  15. bugku ctf 听首音乐 wirteup
  16. 2020年柒月份生活随笔
  17. ARM接口实验—中断实验
  18. 【英语】2月英语学习
  19. WEB应用程序开发与部署
  20. 《软件工程导论》全书知识点整理

热门文章

  1. java clone 深复制_Java的clone():深复制与浅复制
  2. python面向对象图片_Python面向对象-概念、类、实例
  3. tar -xf_青铜表选什么?不可错过的XF帝舵碧湾小铜盾
  4. vs添加码云远程_项目git步骤,将项目托管到码云。git本地分支推送到远程分支...
  5. 共享经济网络营销外包下的怪兽充电冲向纳斯达克“充电宝要上市”!
  6. 网站外链发布的细节注意事项!
  7. 如何正确使用网站TAG标签,让SEO优化效果倍增?
  8. u盘文件看得见却打不开_win7下u盘文件打不开怎么办 win7下u盘文件打不开解决方法...
  9. 空间刚架matlab_基本平面刚架MATLAB程序
  10. debain apt oracle jdk,debian安装oracle jdk