由于项目需要,要完成将上传的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. 问题 A: 分数矩阵

    题目描述 我们定义如下矩阵:1/1 1/2 1/31/2 1/1 1/21/3 1/2 1/1矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增.请求出这个矩阵的总和. 输入 输入包含多组测 ...

  2. 解决:Unable to execute dex: GC overhead limit exceeded

    转自http://blog.sina.com.cn/s/blog_6e334dc70101hnug.html Android打包时下面的错误: Unable to execute dex: GC ov ...

  3. PhpStorm 配置数据库

    点击软件右边的 Database

  4. python 注册表重置ie代理 ss使用后的代理恢复

    每次用完ss客户端,浏览器代理都不会改回来,不想手动改,只能用python脚本处理了. import winreg def disableProxy(): proxy = "" x ...

  5. 软工实践Beta冲刺(6/7)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...

  6. javascript中判断变量是否存在的正确方式

    在Javascript中,我们通常判断一个变量是否存在(即不为null或者undefined),往往是这样判断的 if(tomy){ console.log(obj.name); } 这种写法在大部分 ...

  7. [剑指Offer] 27.字符串的排列

    [思路]从第一位开始,判断每一位字符的所有可能性,依此递归. class Solution { public: void PermutationHelp(vector<string> &a ...

  8. 你试过不用if写代码吗?

    我在教新手编程时,喜欢给他们一些小小的挑战,比如:不使用if语句(或者三元运算符.switch语句等)解决一些编程问题.这样做有什么意义吗?事实上,它可以迫使你从不同的角度寻找解决方法,也许可以找到更 ...

  9. [Leetcode] spiral matrix ii 螺旋矩阵

    Given an integer n, generate a square matrix filled with elements from 1 to n 2 in spiral order. For ...

  10. C语言一些常用的功能

    1.测试运行时间: #include<stdio.h> #include<stdlib.h> #include<time.h> int main() { clock ...