如何通过javajava实现读取word文档档的内容并自动转成html格式

java word文档 转 html文件 - 烟火_ - 博客园
一、简介   一般word文件后缀有doc、docx两种。docx是office word 2007以及以后版本文档的扩展名;doc是office word 2003文档保存的扩展名。对于这两种格式的word转换成html需要使用不同的方法。对于docx格式的文档使用xdocreport进行转换。依赖如下:
&dependency&
&groupId&fr.opensagres.xdocreport&/groupId&
&artifactId&fr.opensagres.xdocreport.document&/artifactId&
&version&1.0.5&/version&
&/dependency&
&dependency&
&groupId&fr.opensagres.xdocreport&/groupId&
&artifactId&org.apache.poi.xwpf.converter.xhtml&/artifactId&
&version&1.0.5&/version&
&/dependency&
对于docx格式的文档使用poi进行转换。依赖如下:
&dependency&
&groupId&org.apache.poi&/groupId&
&artifactId&poi&/artifactId&
&version&3.12&/version&
&/dependency&
&dependency&
&groupId&org.apache.poi&/groupId&
&artifactId&poi-scratchpad&/artifactId&
&version&3.12&/version&
&/dependency&
二:示例   代码示例如下:
1 package com.test.
3 import java.io.F
4 import java.io.FileInputS
5 import java.io.FileNotFoundE
6 import java.io.FileOutputS
7 import java.io.IOE
8 import java.io.InputS
9 import java.io.OutputS
11 import javax.xml.parsers.DocumentBuilderF
12 import javax.xml.parsers.ParserConfigurationE
13 import javax.xml.transform.OutputK
14 import javax.xml.transform.T
15 import javax.xml.transform.TransformerE
16 import javax.xml.transform.TransformerF
17 import javax.xml.transform.dom.DOMS
18 import javax.xml.transform.stream.StreamR
20 import org.apache.poi.hwpf.HWPFD
21 import org.apache.poi.hwpf.converter.PicturesM
22 import org.apache.poi.hwpf.converter.WordToHtmlC
23 import org.apache.poi.hwpf.usermodel.PictureT
24 import org.apache.poi.xwpf.converter.core.FileImageE
25 import org.apache.poi.xwpf.converter.core.FileURIR
26 import org.apache.poi.xwpf.converter.xhtml.XHTMLC
27 import org.apache.poi.xwpf.converter.xhtml.XHTMLO
28 import org.apache.poi.xwpf.usermodel.XWPFD
29 import org.junit.T
30 import org.w3c.dom.D
* word 转换成html
35 public class WordToHtml {
* 2007版本word转换成html
* @throws IOException
public void Word2007ToHtml() throws IOException {
String filepath = "C:/test/";
String fileName = "滕王阁序2007.docx";
String htmlName = "滕王阁序2007.html";
final String file = filepath + fileN
File f = new File(file);
if (!f.exists()) {
System.out.println("Sorry File does not Exists!");
if (f.getName().endsWith(".docx") || f.getName().endsWith(".DOCX")) {
// 1) 加载word文档生成 XWPFDocument对象
InputStream in = new FileInputStream(f);
XWPFDocument document = new XWPFDocument(in);
// 2) 解析 XHTML配置 (这里设置IURIResolver来设置图片存放的目录)
File imageFolderFile = new File(filepath);
XHTMLOptions options = XHTMLOptions.create().URIResolver(new FileURIResolver(imageFolderFile));
options.setExtractor(new FileImageExtractor(imageFolderFile));
options.setIgnoreStylesIfUnused(false);
options.setFragment(true);
// 3) 将 XWPFDocument转换成XHTML
OutputStream out = new FileOutputStream(new File(filepath + htmlName));
XHTMLConverter.getInstance().convert(document, out, options);
//也可以使用字符数组流获取解析的内容
ByteArrayOutputStream baos = new ByteArrayOutputStream();
XHTMLConverter.getInstance().convert(document, baos, options);
String content = baos.toString();
System.out.println(content);
baos.close();
System.out.println("Enter only MS Office 2007+ files");
* 2003版本word转换成html
* @throws IOException
* @throws TransformerException
* @throws ParserConfigurationException
public void Word2003ToHtml() throws IOException, TransformerException, ParserConfigurationException {
String filepath = "C:/test/";
final String imagepath = "C:/test/image/";
String fileName = "滕王阁序2003.doc";
String htmlName = "滕王阁序2003.html";
final String file = filepath + fileN
InputStream input = new FileInputStream(new File(file));
HWPFDocument wordDocument = new HWPFDocument(input);
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
//设置图片存放的位置
wordToHtmlConverter.setPicturesManager(new PicturesManager() {
public String savePicture(byte[] content, PictureType pictureType, String suggestedName, float widthInches, float heightInches) {
File imgPath = new File(imagepath);
if(!imgPath.exists()){//图片目录不存在则创建
imgPath.mkdirs();
File file = new File(imagepath + suggestedName);
OutputStream os = new FileOutputStream(file);
os.write(content);
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
return imagepath + suggestedN
//解析word文档
wordToHtmlConverter.processDocument(wordDocument);
Document htmlDocument = wordToHtmlConverter.getDocument();
File htmlFile = new File(filepath + htmlName);
OutputStream outStream = new FileOutputStream(htmlFile);
//也可以使用字符数组流获取解析的内容
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream outStream = new BufferedOutputStream(baos);
DOMSource domSource = new DOMSource(htmlDocument);
StreamResult streamResult = new StreamResult(outStream);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer serializer = factory.newTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
serializer.setOutputProperty(OutputKeys.METHOD, "html");
serializer.transform(domSource, streamResult);
//也可以使用字符数组流获取解析的内容
String content = baos.toString();
System.out.println(content);
baos.close();
outStream.close();
  运行生存文件结果如下:
随笔 - 116在window下可以使用jacob,实现word转换成html,但是在linux下怎么实现呢?想问下大家是如何做的
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
使用abiword
abiword --to=html xxx.doc
ubuntu下可直接sudo apt-get install abiword安装除了html,还支持转换为以下格式:
Abiword XML format (zabw for gzip, bzabw for bzip2 compression)
DocBook XML
Microsoft Word binary format
Office Open XML (newer Microsoft Word versions)
Hypertext Markup Language
OpenDocument Text
Portable Document Format
Rich Text Format
OpenOffice.org Writer 1.0
Plain text
docx4j 应该能满足你的需求。
不是您所需,查看更多相关问题与答案
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (8342) 次【IT168信息化】日,政、产、学、研各路精英齐聚天津滨海。由中国民主促进会天津市委员会、天津市滨海新区科学技术委员会、天津市滨海新区经济和信息化委员会共同主办的“电子文档与云服务发展论坛”在这里隆重开幕。会议由滨...
【IT168 上海行情】作为一款高速办公文档扫描仪,中晶扫描仪6240S当前正在热卖,商家“上海擎星电子科技有限公司”特价11800元。中晶扫描仪6240S  中晶 6240S是一款A4双面彩色自动馈纸式扫描仪,不仅提供每分钟40页(80个页面)高速扫...
【IT168 应用】9月11日,金山办公软件正式对外发布WPS Office 2012 9月抢鲜版(3405)。从9月起,WPS会于每月第二个星期二发布最新抢鲜版。每次的抢鲜版都会给大家带来多项功能上的更新和改进。本次的3405版新增了在线文档及单点登录...
【IT168 应用】尽管Win7系统以智能化、易操作、安全稳定等备受欢迎,但直到现在很多人已经养成了使用很长时间都不整理磁盘和系统的习惯,以至于久而久之,系统变得越来越慢,并且容易出现故障,而另一个不好的习惯就是电脑上保存了大量...
【IT168 行情】笔者近日从明基扫描仪总代理商广州欣阅公司了解到,明基高速彩色文档扫描仪P800目前促销价仅售3980元,有兴趣的朋友可以联系该公司进一步了解该产品。  明基P800扫描仪采用流线型机身设计,材质高档且外观时尚。该扫描...
你可能还喜欢
你可能需要
| 使用条款 |
| 诚聘精英 |
北京皓辰网域网络信息技术有限公司. 版权所有
北京市公安局海淀分局网监中心备案编号:
IT168解决你所有问题
Error:404 閿欒?锛

我要回帖

更多关于 java读取word表格内容 的文章

 

随机推荐