java实现word的在线预览

思路

最近想着实现在线预览word的文档,找了很多方法都没有成功,在最后不懈的寻找和大佬的帮助下终于完成了这个东西。总体来说就是先把word文件转换为PDF文件然后再PDF.js对PDF文件进行前端预览。

使用到的jar包和js

采用的是aspose-words-15.8.0-jdk16(绿色版)jar包前端的js使用的是PDF.js链接:https://pan.baidu.com/s/1DoFT6r9_45c09mYLeFFIbQ
提取码:zbbp
复制这段内容后打开百度网盘手机App,操作更方便哦

操作步骤

1.如果是没有用maven管理工具的话将jar包拖入你的lib目录下即可,使用aven工具的话则需要自己将jar包安装到自己的本地目录下,具体操作这里就不再赘述。
2.将网盘中的PDF文件整个解压缩放到你的前端资源文件中。
3.创建一个word转换pdf的工具类将下列代码放入其中

/*** word to pdf* @param inPath  word 全路径* @param outPath 生成的pdf 全路径* @author an* @throws Exception*/public static String docPdf(String inPath, String outPath)   {if (!isWordLicense()) {return null;}try {String path = outPath.substring(0, outPath.lastIndexOf(File.separator));File file = null;file = new File(path);if (!file.exists()) {//创建文件夹file.mkdirs();}file = new File(outPath);// 新建一个空白pdf文档FileOutputStream os = new FileOutputStream(file);Document doc = new Document(inPath); // Address是将要被转化的word文档doc.save(os, SaveFormat.PDF);// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,} catch (Exception e) {e.printStackTrace();}// EPUB, XPS, SWF 相互转换return outPath;}/*** @Description: 验证aspose.word组件是否授权:无授权的文件有水印和试用标记*/public static boolean isWordLicense() {boolean result = false;try {// InputStream inputStream = new// FileInputStream("D:\\Workspaces\\TestFilters\\lib\\license.xml");// 避免文件遗漏String licensexml = "<License>\n" + "<Data>\n" + "<Products>\n"+ "<Product>Aspose.Total for Java</Product>\n" + "<Product>Aspose.Words for Java</Product>\n"+ "</Products>\n" + "<EditionType>Enterprise</EditionType>\n"+ "<SubscriptionExpiry>20991231</SubscriptionExpiry>\n"+ "<LicenseExpiry>20991231</LicenseExpiry>\n"+ "<SerialNumber>23dcc79f-44ec-4a23-be3a-03c1632404e9</SerialNumber>\n" + "</Data>\n"+ "<Signature>\n"+ "sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=\n"+ "</Signature>\n" + "</License>";InputStream inputStream = new ByteArrayInputStream(licensexml.getBytes());com.aspose.words.License license = new com.aspose.words.License();license.setLicense(inputStream);result = true;} catch (Exception e) {e.printStackTrace();}return result;}// outputStream转inputStreampublic static ByteArrayInputStream parse(OutputStream out) throws Exception {ByteArrayOutputStream baos = new ByteArrayOutputStream();baos = (ByteArrayOutputStream) out;ByteArrayInputStream swapStream = new ByteArrayInputStream(baos.toByteArray());return swapStream;}

在这里你只需要关注第一个方法中的inPath(输入路径)和outPath(输出路径)就好了这就完成了第一步word转为了pdf。注意,这里的两个路径必须要精确到文件名,比如说inPath要精确到…/…/…doc,而outPath要精确到…/…/…pdf(可是使用动态的字符串拼接来实现)。
4.pdf在线预览
后台文件 将其中的…/…/…pdf替换掉,替换成你要展示的pdf页面

 @RequestMapping(value = "/preview", method = RequestMethod.GET)public void pdfStreamHandler(HttpServletRequest request, HttpServletResponse response) {File file = new File("../../...pdf");//这里拼接你需要在前台展示的PDF页面if (file.exists()){byte[] data = null;try {FileInputStream input = new FileInputStream(file);data = new byte[input.available()];input.read(data);response.getOutputStream().write(data);input.close();} catch (Exception e) {System.out.println("pdf文件处理异常:" + e);}}else{return;}}

前台文件 找到你网盘中PDF文件解压后存放在项目中的位置,调用后台即可在前台展示出PDF文件。

<!--一个点击事件,打开你后台选中的PDF文件,请自己添加按钮-->$("#but-see").click(function (){window.open("/js/generic/web/viewer.html?file=/preview");})

Javaweb实现在线预览word文件相关推荐

  1. php怎么在线预览word文件?php预览.doc、.docx、.wps文件

    php预览Word PHP要实现在线Word预览只需要3步 第一步: 准备一个文件地址,如下: http://usdoc.cn/vw/文件模板.docx 第二步 预览前置地址: http://vw.u ...

  2. vue 在线预览word文件docx

    1.npm安装插件 npm i docx-preview 2.index.html文件引入 <script src="https://unpkg.com/jszip/dist/jszi ...

  3. word转pdf 转swf 实现在线预览word文件功能

    # ifconfig     -- 查看下虚拟机的ip地址 之后下面的操作都是在本地软件进行连接     -- 将我给的压缩包文件全部上传到 /root 目录下 # yum -y update # i ...

  4. office在线预览 word在线预览 .net在线预览 文件在线浏览接口

    office在线预览 word在线预览 excel在线预览 文件浏览接口服务 支持移动端浏览,只要能使用浏览器上网都可以使用,不需要安装任何第三方工具. 1.word在线预览 excel在线预览,.n ...

  5. mvc直接在html页面预览pdf,Asp.net MVC 实现在线预览word、excel、ppt、pdf文件

    在线预览word.excel.ppt 原理:主要是引用第三方Dll使本地word.excel.ppt文件转换成Html 需要引用 : Aspose.Cells.dll Aspose.Slides.dl ...

  6. 前端页面预览word_详解html实现在线预览word、excel、pdf等文件的功能(附代码)_WEB前端开发...

    JavaScript判断"字典"为空的方法_WEB前端开发 字典是一种存储键值对的数据结构,Javascript中的Object类内部即实现为一个字典,本文就来为大家介绍一下判断字 ...

  7. android 在线预览pdf文件

    android原生webView不支持预览pdf文件,ios却可以,所以android想要实现在线预览webView要通过其他方法,有以下几种方法: 1.andorid原生自带的pdf管理库,主要提供 ...

  8. 在线预览word文档

    在线预览word文档 在线预览word文档 Java 使用wps将word文件转换pdf文件 转成PDF 在线预览word(转成pdf)前端展示 欢迎来提更好的意见 在线预览word文档 昨天下午组长 ...

  9. 前端在线预览word,excel,pdf

    前端在线预览word,excel,pdf 预览Word 预览pdf 预览Excel 预览Word 微软的在线预览功能,可以预览word.ppt.Excel.PDF 局限: 需要外网能访问文件,如果是只 ...

  10. 在线预览Word、PDF、图片(IE、Edge、Google、FireFox等主流浏览器)

    支持IE.Edge.Google.FireFox等主流浏览器处理在线预览Word.PDF.JPG.JPEG等格式文件或图片. var id=ID; if(id!=undefined){var hasI ...

最新文章

  1. 清华发布《人工智能AI芯片研究报告》,一文读懂人才技术趋势
  2. Cxf + Spring3.0 入门开发WebService
  3. JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
  4. rabbitmq如何保证消息不丢失_RabbitMQ的去重与防止消息的丢失
  5. 快速替换图片的组合-AE-样片!
  6. 网格布局(Grid Layout)
  7. 从高的角度看自动化测试
  8. JDBC(4)PreparedStatement
  9. LINUX获得当前用户名
  10. Atitit r2017 r5 doc list on home ntpc.docx 驱动器 D 中的卷是 p2soft 卷的序列号是 9AD0-D3C8 D:\ati\r2017 v4 r
  11. ubuntu硬盘装机_配置系统总结
  12. Java设计模式之——策略模式
  13. android权限集合
  14. 使用QImage生成纯透明png图片
  15. 安卓:三分钟实现物流配送页面(时间轴效果)
  16. LDO与Transceiver通信芯片的组合逻辑
  17. 项立刚:大陆为什么没有台积电
  18. php 说说,PHP利用Qzone的说说接口发表说说开发日记
  19. 图文详解STM32F0xx基于标准库新建工程
  20. app内嵌h5分享到小程序分享功能

热门文章

  1. 机器学习基石(一):什么是机器学习
  2. TVS管、稳压管、肖特基二极管
  3. 安卓模拟器安装教程_[教程]安卓手机如何安装百度输入法五笔字根皮肤[教程]...
  4. mdui前端插件,有菜单对话框等
  5. php文件上传实验总结,php文件上传总结 - osc_jjc36t9p的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. php检查gd库是否开启,检查服务器是否开启GD库
  7. 开源成语答题小程序红包设置教程
  8. 《明解c语言 入门篇》柴田望洋/著 205段代码
  9. leetcode 剑指 Offer 12. 矩阵中的路径
  10. html+css常用代码(前端必备)