在线预览word文档

news/2024/11/14 14:22:07/

在线预览word文档

    • 在线预览word文档
    • Java 使用wps将word文件转换pdf文件
    • 转成PDF
    • 在线预览word(转成pdf)前端展示

欢迎来提更好的意见

在线预览word文档

昨天下午组长告诉我,你去研究一下在线预览word文档,带着一脸懵去上网查资料,csdn,开源,知乎等。最常见的四种文件预览方法:

  1. kkfileview 文件在线预览 ,是在spring boot上搭建的,因为我项目没用到微服务所以放弃了解;
  2. officetohtml纯前端的方式,我不是专业的前端,虽然工作中我也是一个人负责前后端(前端:layui框架+js)等页面展示+后端,但是我尽量能后端编写就不会把值复杂化传给前端。所以我放弃了解 ;
  3. JODConverter ,这个里面提到一个可以用openoffice,实现原理就是:通过第三方工具openoffice,将word、excel、ppt、txt等文件转换为pdf文件流;这样就可以在浏览器上实现预览了。我也去了解并下载软件,但是下载实在太忙,我又放弃了,想有没有更简单的方法:“不下载软件,不去部署环境,最多就是加个包”,所以又放弃了解;
  4. Aspose ,这个忘记为啥没再去了解了哈哈;
  5. 最后在各种java群里问,有没有更简单的方式,结果的确有个超级简单的方法,Java 使用wps将word文件转换pdf文件

Java 使用wps将word文件转换pdf文件

贴上代码:

	/**** 判断需要转化文件的类型(Excel、Word、ppt)** @param inputFile*/public String convertToPDF(String inputFile) {//判断原文件是否存在File file = new File(inputFile);if (file.exists()) {String kind = getFileSufix(inputFile);if (kind.equals("pdf")) {return inputFile;//原文件就是PDF文件}String pdfFile = inputFile.substring(0, inputFile.lastIndexOf(".")) + ".pdf";if (kind.equals("doc")||kind.equals("docx")||kind.equals("txt")) {wordToPDF(inputFile,pdfFile);}else if (kind.equals("ppt")||kind.equals("pptx")||kind.equals("pptm")||kind.equals("ppsx")) {pptToPDF(inputFile,pdfFile);}else if(kind.equals("xls")||kind.equals("xlsx")){ExToPDF(inputFile,pdfFile);}else{return inputFile;//原文件是其它格式文件}//返回创建的pdfreturn pdfFile;} else {//System.out.println("原文件不存在!");return inputFile;}}

依赖包:

  <dependency><groupId>net.sf.jacob-project</groupId><artifactId>jacob</artifactId><version>1.14.3</version></dependency><dependency><groupId>com.jacob</groupId><artifactId>1.0.0</artifactId><scope>system</scope><systemPath>K:\jacob-1.20\jacob.jar</systemPath></dependency>

记得还有下载:jacob-1.20.zip 解压以后,会看到五个文件,但是都不用管它,只需要里面的jar,我是window的所以用…x64.dll。分别放到1: --dll文件 ,放到自己的tomacat/bin下面 2:–dll文件 放到C:/windows/system32下面 3 --dll ,jar 这个我因为我项目下面没有WEB-INF/lib,所以我并没有添加。
启动项目,报错了,,,,,,,,

java.lang.NoClassDefFoundError: Could not initialize class com.jacob.com.ComThread

然后看到一篇博主的就改了一下就好了,目前还没更新到线上,本地测试是可以的。

转成PDF

1、贴代码:

//设置响应内容类型为PDF类型response.setContentType("application/pdf;charset=UTF-8");ServletOutputStream sos = response.getOutputStream();//不在网页中打开,而是直接下载该文件,下载后的文件名为“Example.pdf”File pdf = null;FileInputStream fis = null;byte[] buffer = new byte[1024*1024];if(filePath!=null){     //pdf文件路径pdf = new File(filePath);response.setContentLength((int) pdf.length());fis = new FileInputStream(pdf);int readBytes = -1;while((readBytes = fis.read(buffer, 0, 1024*1024)) != -1){sos.write(buffer, 0, 1024*1024);}sos.close();fis.close();}

在线预览word(转成pdf)前端展示

前端js请求并把id带到后台,用

	String id = (String) request.getSession().getAttribute("页面名称xxxxx");页面用iframe打开<iframe id="test1" style="width: 100%;height: 80vh;"></iframe>js请求://pdf预览
$(".withExport ").on("click",function(){
var fileId= $(this).attr("fileId");
$.get( contextPath + 'xxx/pdfs?'+'id='+fileId, {}, function(str){var addIndex = layer.open({type: 1,title:'pdf',content: str,area: ["70%","750px"]});$.get( contextPath + '/selectPDFs?'+ 'id='+fileId, {}, function(str){$("#test1").attr("src",contextPath + "/pdf/web/viewer.html?file=/ams/displayPDFs?");});
});
});

以上就是在线预览word和pdf的思路,如果需要代码,可以留言,我整理文档发给你。溜啦溜啦,还要部署到线上测试。


http://www.ppmy.cn/news/351369.html

相关文章

文库文档如何下载

目录 一、百度文库直接下载二、其他方法1.稻壳阅读器2.冰点文库下载器 baidu文库资源丰富&#xff0c;各类文档众多&#xff0c;那么平时我们可以如何下载呢。以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、百度文库直接下载 免费文档直接下载 下载券的文档可以通…

微软 Office Online 在线查看word,pdf, xls,ppt 文档

使用微软提供的Office Online平台只需要一个网址即可在线查看Xls,doc,PPT等文档 http://view.officeapps.live.com/op/view.aspx?src要查看的文档地址 在线编辑需要登录live.com并从onedrive中打开或新建文档也可以来自在线模板(下面的Excel来自Excel Online模板&#xff0c;…

【最全下载合集】最新Office 2021微软官方原版离线安装下载地址合集

Office2021下载地址合集 说明&#xff1a;仅支持Win10/11系统&#xff0c;img镜像Win10/11下直接装载打开即可。 一、专业增强版&#xff08;强烈推荐&#xff09;&#xff1a; http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/media/zh-cn/ProPlus20…

Microsoft Office下载链接

说明&#xff1a;安装包均为微软官方安装包链接&#xff0c;不存在任何修改&#xff0c;想要破解版什么的可以离开了。 离线安装包由微软官方持续更新&#xff0c;虽然链接相同&#xff0c;但不同时间下载的安装包不一定相同。 本篇文章持续更新&#xff0c;若有不全&#xff…

word下载

在实际开发中,经常会遇到将数据库的数据写到word模板中再下载的需求,开贴记录一下. 首先准备一个带有占位符的word模板并放到resources目录中 然后开始编写下载的方法 ApiOperation(value "下载零星工程审批表", notes "下载零星工程审批表", httpMeth…

【离散数学】集合论

目录 集合的基本概念 集合的表示 集合与集合之间的关系 几个特殊的集合 集合的运算 无限集、可数集、不可数集 与集合相关的应用 计数问题 集合的基本概念 集合就是由一些元素组成的整体&#xff0c;每一个元素可以是任何东西——数字、字母、词语、图片等。集合中的元…

leetcode198. 打家劫舍(java-动态规划)

打家劫舍 leetcode198. 打家劫舍题目描述 暴力递归解题思路代码演示 递归 缓存解题思路代码演示 动态规划解题思路代码演示 动态规划专题 leetcode198. 打家劫舍 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/house-r…

菜场

这是鲁谷小区一个比较大的菜场了&#xff0c;冬天蔬菜的种类并不多&#xff0c;卖菜的人看上去也有点蔫。 畅销的大白菜&#xff0c;很多人推着小车来买&#xff0c;然后晒在院子里&#xff0c;晒成一团团暗绿色的大球。 胡萝卜&#xff0c;我最不爱吃的东西之一。同样是萝卜&a…