前两天帮同学实现在线预览word文档中的内容,而且需要提供可以下载的链接!在网上找了好久,都没有什么可行的方法,只得用最笨的方法来实现了。希望得到各位大神的指教。下面我就具体谈谈自己的实现过程,总结一下学习中的收获。

我相信很多程序员都遇到过,有些word文档希望直接在浏览器中打开进行预览,但是浏览器往往不是很配合,直接就提示下载,不像pdf文档,浏览器可以直接进行预览。Word文档甚至始终都会通过本地的Office软件打开。那么,问题来了,如何可以在线浏览word文档呢?

其实,我在最初的时候也没有接触过这方面的东西,一般用的比较多的是生成pdf文档,而浏览器一般都支持pdf的浏览,因此,直接通过后台传来的数据,再利用java和一些相关的jar包就可以生产一个pdf文档,在浏览器中可以直接显示。尽管可以这样,但是我们需要的是解决实际问题啊?在浏览器中打开word文档。

在网上查了一些资料,也都没有查出个所以然。看了好几个博客和论坛,也都是大同小异,测试了好几个,基本都是浏览器提示直接下载,或者打开,这里的打开也都是利用本地的Office软件打开的,所以这并不是自己想要的结果。于是,自己动手,既然浏览器不支持显示word文档,我何不将word文档按照原来word的样式和内容转为html呢?而在浏览器中,html是再熟悉不过了。基本思路就是这样,首先是利用上传的word文档转为html文件,然后生成的链接显示在jsp页面上,如果点击显示该word文档,那么实际上浏览器读取的是刚生成的html文件。

下面将自己的实现过程总结如下,欢迎各位朋友提供更好的解决办法。转载本文请在文章明显位置标明文章的原始出处,个人博客:http://itred.cnblogs.com  邮箱: it_red@sina.com

1. Word文档转为html

先在这里说一下,用这个组件还是比较麻烦的,首先要根据自己的电脑实际情况将压缩包里面的动态链接库放到多个目录下,而这个动态链接库为:

将其复制的位置分别是:

C:\Windows\System32

机器所安装的java目录下的jdk下的bin中

在myeclipse中指定jre

然后就是编码阶段:

导入相关的jar包,新建一个WordReader类,源码如下:

packagecom.mh.test;importcom.jacob.activeX.ActiveXComponent;importcom.jacob.com.Dispatch;importcom.jacob.com.Variant;public classWordReader {public static voidextractDoc(String inputFIle, String outputFile) {boolean flag = false;//打开Word应用程序

ActiveXComponent app = new ActiveXComponent("Word.Application");try{//设置word不可见

app.setProperty("Visible", new Variant(false));//打开word文件

Dispatch doc1 = app.getProperty("Documents").toDispatch();

Dispatch doc2=Dispatch

.invoke(doc1,"Open", Dispatch.Method, new Object[] {inputFIle, new Variant(false), new Variant(true)},new int[1]).toDispatch();//作为html格式保存到临时文件::参数 new Variant(8)其中8表示word转html;7表示word转txt;44表示Excel转html。。。

Dispatch.invoke(doc2, "SaveAs", Dispatch.Method, new Object[] {outputFile, new Variant(8)}, new int[1]);//关闭word

Variant f = new Variant(false);

Dispatch.call(doc2,"Close", f);

flag= true;

}catch(Exception e) {

e.printStackTrace();

}finally{

app.invoke("Quit", newVariant[] {});

}if (flag == true) {

System.out.println("Transformed Successfully");

}else{

System.out.println("Transform Failed");

}

}

}

新建测试类,包含main方法:

packagecom.mh.test;public classTT {/***@paramargs*/

public static voidmain(String[] args) {

WordReader.extractDoc("e:/f.docx","e:/ee.html");

}

}

这里是将word转为html就算完成了,因此知道了,如果需要将word转为html就可以直接调用WordReader中的方法就可以实现。这里就不多说了。

2. 且说文件的上传,下载

这里是利用Struts2实现的上传功能,index页面中的源码:

文件上传

java word上传下载_JSP实现word文档的上传,在线预览,下载相关推荐

  1. 文档转成html在线预览,java poi Word文档转为HTML文件 实现在线预览功能

    Java代码 import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; im ...

  2. Java如何实现文档在线预览+下载

    Java如何实现文档在线预览+下载 看了好多转换预览的,但是感觉都比较麻烦,所以自己就简单写了个. FileController接收需要预览的文件,替换filePath,如果是要在linux环境下运行 ...

  3. pdf.js —— 在线预览下载打印pdf文件插件,实现的两种方式

    ViewerJS简介 ViewerJS的繁重工作是由这些令人敬畏的项目完成的: PDF.js(由Mozilla提供) WebODF(由KO GmbH提供) 运行ViewerJS就像创建链接一样简单.您 ...

  4. pdf.js——在线预览下载打印pdf文件插件

    html页面使用 下载PDF.js, http://mozilla.github.io/pdf.js/getting_started/#download 将 pdfjs 文件夹 放到 项目static ...

  5. Java预览下载word文档(poi-tl、thymeleaf模板)

    主要功能 预览word文档 生成并下载word文档 实现 前端Vue代码 预览功能主要使用的是docx-preview下载方式如下: npm install docx-preview --save & ...

  6. 利用OpenOffice实现word文档在线预览

    项目中遇到的word文档在线预览需求,查阅很多资料决定利用openoffice转换word文档为pdf/html进行预览实现. 1.下载openoffice4安装 www.openoffice.org ...

  7. ❤️强烈推荐!Word、Excel、PPT、PDF在线预览解决方案

    大家好,我是锋哥: 平时大伙开发项目的时候,经常遇到业务需求Word.Excel.PPT.PDF在线预览功能: 市面上这方面的解决方案也有一些,不做过多评价.今天主要推荐的是一个特定提前下的永久免费解 ...

  8. 文档在线预览(四)使用js前端实现word、excel、pdf、ppt 在线预览

    文章目录 实现方案 一.docx文件实现前端预览 1.docx-preview 2.Mammoth 二.PDF文件实现前端预览 1.pdf.js 2.pdfobject.js 3.vue-pdf 4. ...

  9. java文档在线预览实现

    Java文档在线预览实现 近期因需要完成对word.excel.ppt.txt等文档的内容检索,在用户检索到相关内容时,需要给用户提供一个在线预览文档的功能.在网上找到部分参考后,实现了该功能. Ja ...

最新文章

  1. 有java基础的人学python_准备自学Python ,会java,有什么建议吗?
  2. Podman中如何运行一个 Linux 虚拟机?
  3. sencha touch Model validations 自定义验证 二选一输入验证、重复验证、时间验证、比较验证、条件验证(2015-1-14)...
  4. GitBook使用教程
  5. 编程之美-队列中取最大值操作问题
  6. 基础知识的学习,来自十年程序员的经验分享
  7. 在图形中使用指定字体
  8. HDU - 7028 Decomposition 无向完全图构造欧拉回路
  9. 微软 SQL Server 2019 将免费支持 Java;Rancher Labs获2500万美元融资;腾讯云进军日本市场……...
  10. mysql插入日期_初识MySQL
  11. PIE SDK矢量数据编辑的撤销和回退
  12. CentOS 7 最小化安装简单配置
  13. 云计算学习笔记---异常处理---hadoop问题处理ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.NullPoin
  14. 如何看待现在一些年轻人秉持「简单是福、平淡是真」的随遇而安的生活态度?...
  15. 阿里巴巴100%云上双11
  16. Android下调用收发短信邮件等
  17. win7自动锁定计算机快捷键,两种方法教你锁定Win7系统电脑计算机快捷键
  18. iOS开发初级错误 Expression is not assignable
  19. 2022-2028全球重要器官支持系统和医学仿生学行业调研及趋势分析报告
  20. 手机视频网页点播服务器,手机视频点播系统搭建完整方案

热门文章

  1. c语言网红时钟代码源码,网红文本时钟PC版
  2. vue调用接口获取后台数据_使用Vue实现调用接口加载页面初始数据
  3. matlab 将mat格式的数据另存为Excel数据(xls,xlsx)
  4. Linux_用户账号权限的设定教程!
  5. antd-Calendar(日历)自动嵌入对应时间问题
  6. QT框架下的OpenGL使用---实战篇---图像的显示
  7. jpg图片转换为avi视频
  8. 网页php载入live2d,给网页添加Live2D和图片不显示解决方法
  9. matlab中输入十六进制数
  10. UE4之局域网游戏如何更改配置文件