由于项目需要,要完成将上传的word文件转成html文件的功能。在网上搜了一下,大致有3种方法:1、用jacob实现 2、用poi实现 3、用openoffice实现。

  从网上来看好像jacob用的人最多,我就选择了这种方法来做。需要引入jacob.jar jar包,并且jar包还要调用jacob.dll文件,需要事先把jacob.dll文件放到以下3处地方:C:\Windows\System32 目录下,安装的jdk文件夹下的bin目录中,以及jre文件夹下的bin目录(注意一定是你这个项目运行所用到的jdk和jre,如果你的机器上装有多个,首先你要确认清楚放到哪个中)。编写程序,运行通过,达到了想要的效果,生成了html文件,同时还生成了一个文件夹,里边放了若干文件,包括所含的源图片。如果你的文档里包含图片的话要注意生成的html中的图片的src路径默认的是放图片的文件夹和生成的html文件要放到同样的路径中,这样才能找得到图片,否则图片不能加载到html中。介于这个原因,我决定不把html文件中所含字符串存入数据库,而是把htnl的链接地址存入数据库,这样根据这个链接加载的html就可正确的显示图片。

  接下来悲剧的事情发生了。项目要布在linux服务器上,这意味着我之前的努力全白费了。特此声明, jacob 只支持windows服务器,不支持linux,.dll文件也是windows所特有的!所以大家在选择采用何种方式时一定要结合自己要用的操作系统。

  万般无奈之下只好再采用poi去做。还是要导入要用到的jar包,网上有很多实现的代码可直接拿来用。我在本地的java项目中试着写了这个功能(非web的),ok,生成了html文件,同时生成了所含的图片。然后我就把代码转到我的web项目中,但是悲剧发生了,生成的html页面显示是乱码,用notepad++打开源代码也是乱码。我解决了好久没有解决,直到最后把程序中以下两句中的编码由“utf-8”改为“GB2312”后,问题才得以解决,但是至今还不知道为什么这样。

serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");//一定要改成“GB2312”

FileUtils.writeStringToFile(new File(tpFile), content, "utf-8");   //一定要改成“GB2312”

  至于openoffice的方式,我没有试。在网上搜到一些资料是这么说的:

 openoffice 会在第一次打开包含他的页面的时候弹出小广告。linux服务器还要解决acess问题。  
 openoffice有个服务可以开启,再加上 jodconverter.jar 组合使用。

用java实现word转html的更多相关文章

  1. java 读写word java 动态写入 模板文件

    import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import ja ...

  2. java导出word的6种方式(复制来的文章)

    来自: http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前 ...

  3. Java 实现word 中写入文字图片的解决方案

    JAVA生成WORD文件的方法目前有以下两种方式: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案; 一种是poi但是他的excel处理很程序 ...

  4. java操作word,excel,pdf

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  5. Java解析word文档

    背景 在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何解析word文档. 因为系统如果无法智能的解析word,那么就只能通过其他方式手动录入word内容,效率低下,而且人工成本和录入出错率 ...

  6. [Java] Java读取Word文档

    前言 最近需要做一些NLP 方面的工作,使用的是Java,在此总结一下使用Java读取Word(.doc)格式文件的方法. Apache基金会非常厉害,开源工具包POI就可以处理微软家的文档,甚至包括 ...

  7. Java解析word,获取文档中图片位置

    前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创建和解析word.excel.ppt格式的文档. 其中对word文档的处理有两个技术 ...

  8. Java读取word中表格

    因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...

  9. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  10. java生成word的几种方案

    http://blog.sina.com.cn/s/blog_a5e968370101crtl.html 1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建 ...

随机推荐

  1. 学习人工智能的第五个月[字典学习[Dictionary Learning,DL]]

    摘要: 大白话解释字典学习,分享第五个月的学习过程,人生感悟,最后是自问自答. 目录: 1.字典学习(Dictionary Learning,DL) 2.学习过程 3.自问自答 内容: 1.字典学习( ...

  2. C# 结构类型与类的区别

    结构类型是值类型:类是引用类型: 内存位置不同,结构类型在应用程序的堆栈中:类对象在托管中: 是否改变源对象

  3. Go基础篇【第4篇】: 内置库模块 bufio

    bufio包实现了有缓冲的I/O.它包装一个io.Reader或io.Writer接口对象,创建另一个也实现了该接口,且同时还提供了缓冲和一些文本I/O的帮助函数的对象. 即:为了解决CPU与磁盘IO ...

  4. 使用SetOperations(无序)操作redis

    方法 c参数 s说明 Long add(K key, V... values); K key:集合key V... values:key对应的值 向集合中添加一个或多一个元素 Long remove( ...

  5. winform 控件半透明设置

    1.backcolor属性为color.FromArgb(100, 220, 220, 220); 2.全透明设置为transparent方法.

  6. epc笔记

    http://wenku.baidu.com/view/5e921520dd36a32d7375812a.html 1.  先注册, EPC注册EPS业务或non-EPS服务 ?? HSS做什么? 2 ...

  7. [OS] 进程相关知识点

    进程概念: 1.程序在执行中 2.一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位. 进程与程序的差别: ·进程----动态, 程序----静态 ·进程 ...

  8. springMVC笔记二

    第十四章 springmvc快速入门(注解版本) 1)springmvc快速入门(传统版) 步一:创建springmvc-day02这么一个web应用 步二:导入springioc,springweb ...

  9. Hadoop Yarn on Docker

    搭建Hadoop Yarn on Docker 一.概览 Docker基于Linux Container技术整合了一堆易用的接口用于构建非常轻量级的虚拟机.Docker Container Execu ...

  10. [洛谷P2384]最短路

    题目大意:给你一个图,要你求出其中1->n路径中乘积最小的一条路 题解:用$log_2$把乘法变成加法,然后记录每个点的前驱,最后求出答案 C++ Code: #include<cstdi ...