首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java面试 >

求poi将word变换为html文件的例子

2012-12-17 
求poi将word转换为html文件的例子求poi将word转换为html文件的例子[解决办法]各位给个解答吧,网上搜没搜到

求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;"; 


if (cr.isItalic()) 
fontStyle += "font-style:italic;"; 
if (flag && i != length - 2) 
tempString += currentChar; 
else if (!flag) { 
htmlText += fontStyle + "'>" + tempString + currentChar + "</span>"; 
tempString = ""; 
} else 
htmlText += fontStyle + "'>" + tempString + currentChar + "</span>"; 

htmlText += "</body></html>"; 
this.writeFile(htmlText); 

}

}
















































热点排行