日期:2014-05-20  浏览次数:20586 次

求poi将word转换为html文件的例子
求poi将word转换为html文件的例子
------解决方案--------------------
各位给个解答吧,网上搜没搜到啊
------解决方案--------------------
http://blog.csdn.net/cornfieldc01/article/details/6339801
------解决方案--------------------
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream.GetField;

import org.apache.poi.hpbf.model.MainContents;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.model.PicturesTable;
import org.apache.poi.hwpf.usermodel.CharacterRun;
import org.apache.poi.hwpf.usermodel.Range;
/** 

* @author 张廷 下午

*/ 
public class WordToHtml { 
/** 
* 回车符ASCII码 
*/ 
private static final short ENTER_ASCII =  13;
/** 
* 空格符ASCII码 
*/ 
private static final short SPACE_ASCII =  32;
/** 
* 水平制表符ASCII码 
*/ 
private static final short TABULATION_ASCII = 9; 
private String htmlText = ""; 
/** 
* 读取每个文字样式 

* @param fileName 
* @throws Exception 
*/ 
public void getWordAndStyle(String fileName) throws Exception { 
FileInputStream in = new FileInputStream(new File(fileName)); 
HWPFDocument doc = new HWPFDocument(in); 
// 取得文档中字符的总数 
int length = doc.characterLength(); 
// 创建图片容器 
PicturesTable pTable = doc.getPicturesTable(); 
htmlText = "<html><head><title>" + doc.getSummaryInformation().getTitle() + "</title></head><body>"; 
// 创建临时字符串,好加以判断一串字符是否存在相同格式 
String tempString = ""; 
for (int i = 0; i < length - 1; i++) { 
// 整篇文章的字符通过一个个字符的来判断,range为得到文档的范围 
Range range = new Range(i, i + 1, doc); 
CharacterRun cr = range.getCharacterRun(0); 
if (pTable.hasPicture(cr)) { 
// 读写图片
//暂时不读取
this.readPicture(pTable, cr);
this.readPicture(pTable, cr);
} else { 
Range range2 = new Range(i + 1, i + 2, doc); 
// 第二个字符 
CharacterRun cr2 = range2.getCharacterRun(0); 
// 当前字符 
char currentChar = cr.text().charAt(0); 
// 判断是否为回车符 
if (currentChar == ENTER_ASCII) 
tempString += "<br/>"; 
// 判断是否为空格符 
else if (currentChar == SPACE_ASCII) 
tempString += "&nbsp;"; 
// 判断是否为水平制表符 
else if (currentChar == TABULATION_ASCII) 
tempString += " &nbsp;&nbsp;&nbsp;"; 
// 比较前后2个字符是否具有相同的格式 
boolean flag = compareCharStyle(cr, cr2); 
String fontStyle = "<span style='font-family:" + cr.getFontName() + ";font-size:" + cr.getFontSize() / 2 + "pt;"; 
if (cr.isBold()) 
fontStyle += "font-weight:bold;";