package com.test.upload.util;
import org.slf4j.LoggerFactory;
import java.io.FileInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.converter.ExcelToHtmlConverter;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFPalette;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.PicturesManager;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.usermodel.Picture;
import org.apache.poi.hwpf.usermodel.PictureType;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xwpf.converter.core.BasicURIResolver;
import org.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
/**
*
*/
public class POIUtil {
private static Logger logger = LoggerFactory.getLogger(POIUtil.class);
private static final String SUCCESS = "SUCCESS";
private static final String ERROR ="ERROR";
private static final String TEMP_DIR_PATH = "C:\\tempFiles\\";
/**
* word 2003 doc文档转成html方法
* @param prefix
* @param path
* @return
*/
public static String docToHtml(String prefix,String path,String ftpFileName){
path = path+"\\";
String sourcePath = TEMP_DIR_PATH+ftpFileName;
// 指定生成的html全路径
String fileHtml = path + prefix + ".html";
InputStream input = null;
ByteArrayOutputStream outStream = null;
try{
//根据输入文件路径与名称读取文件流
input = new FileInputStream(new File(sourcePath));
//把文件流转化为输入wordDom对象
HWPFDocument wordDocument = new HWPFDocument(input);
//生成针对Dom对象的转化器(通过反射构建dom创建者工厂,生成dom创建者,生成dom对象)
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) {
return suggestedName;
}
});
//转化器开始转化接收到的dom对象
wordToHtmlConverter.processDocument(wordDocument);
//保存文档中的图片
List pics = wordDocument.getPicturesTable().getAllPictures();
FileOutputStream fos = null;
if (pics != null) {
for (int i = 0; i < pics.size(); i++) {
Picture pic = (Picture)pics.get(i);
try {
fos = new FileOutputStream(path + pic.suggestFullFileName());
pic.writeImageContent(fos);
} catch (FileNotFoundException e) {
logger.error(e.getMessage(),e);
}finally {
if(fos != null){
try {
fos.close();
} catch (IOException e) {
logger.error(e.getMessage(),e);
}
}
}
}
}
//从加载了输入文件中的转换器中提取DOM节点
Document htmlDocument = wordToHtmlConverter.getDocument();
//从提取的DOM节点中获得内容
DOMSource domSource = new DOMSource(htmlDocument);
//字节码输出流
outStream = new ByteArrayOutputStream();
//输出流的源头
StreamResult streamResult = new StreamResult(outStream);
//转化工厂生成序列转化器
TransformerFactory tf = TransformerFactory.newInstance();
Transformer serializer = tf.newTransformer();
//设置序列化内容格式
serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
serializer.setOutputProperty(OutputKeys.METHOD, "html");
serializer.transform(domSource, streamResult);
String content = new String(outStream.toByteArray(),"utf-8");
//生成文件方法
FileUtils.writeStringToFile(new File(fileHtml), content, "utf-8");
return SUCCESS;
}catch (Exception e){
logger.error(e.getMessage(),e);
return ERROR;
}finally {
if(outStream!=null){
try {
outStream.close();
}catch (IOException e){
logger.error(e.getMessage(),e);
}
}
if(input!=null){
try {
input.close();
}catch (IOException e){
logger.error(e.getMessage(),e);
}
}
}
}
/**
* word 2007 docx文档转成html方法
* @param prefix
* @param path
* @return
*/
public static String docxToHtml(String prefix,String path,String ftpFileName){
path = path+"\\";
// 指定生成的html全路径
String fileHtml = path + prefix + ".html";
InputStream input = null;
OutputStream out = null;
String sourcePath = TEMP_DIR_PATH+ftpFileName;
try{
//根据输入文件路径与名称读取文件流
input = new FileInputStream(new File(sourcePath));
XWPFDocument document = new XWPFDocument(input);
File imageFolderFile = new File(path);
//加载html页面时图片路径
XHTMLOptions options = XHTMLOptions.create().URIResolver( new BasicURIResolver("./"));
//图片保存文件夹路径
options.setExtractor(new FileImageExtractor(imageFolderFile));
out = new FileOutputStream(new File(fileHtml));
XHTMLConverter.getInstance().convert(document, out, options);
return SUCCESS;
}catch (Exception e){
logger.error(e.getMessage(),e);
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
demo-upload.rar (47个子文件)
demo-upload
.project 1KB
src
com
test
upload
action
UploadServlet.java 3KB
PreviewServlet.java 11KB
UploadActionServlet.java 4KB
util
POIUtil.java 25KB
WebRoot
WEB-INF
lib
commons-collections-3.2.jar 558KB
xmlbeans-2.5.0.jar 2.6MB
org.apache.poi.xwpf.converter.xhtml-1.0.4.jar 49KB
dom4j-1.6.1.jar 307KB
ezmorph-1.0.6.jar 84KB
commons-httpclient-3.0.1.jar 273KB
commons-beanutils-1.7.0.jar 184KB
poi-3.9.jar 1.78MB
commons-io-2.5.jar 204KB
commons-fileupload-1.2.2.jar 58KB
json-lib-2.2.3-jdk15.jar 145KB
slf4j-api-1.7.7.jar 29KB
org.apache.poi.xwpf.converter.core-1.0.4.jar 211KB
ooxml-schemas-1.1.jar 14.15MB
commons-lang-2.5.jar 273KB
commons-logging-1.0.4.jar 37KB
poi-ooxml-3.9.jar 915KB
poi-scratchpad-3.9.jar 1.17MB
web.xml 2KB
upload1.jsp 630B
upload2.jsp 5KB
js
jquery-1.10.1.min.js 91KB
webuploader.js 274KB
Uploader.swf 140KB
preview.html 9KB
META-INF
MANIFEST.MF 39B
css
webuploader.css 515B
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 348B
org.eclipse.jdt.core.prefs 364B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.core.resources.prefs 98B
org.eclipse.wst.common.component 482B
.jsdtscope 500B
build
classes
com
test
upload
action
UploadActionServlet.class 4KB
UploadServlet.class 4KB
UploadActionServlet$2.class 1KB
UploadActionServlet$1.class 911B
PreviewServlet.class 10KB
util
POIUtil$1.class 891B
POIUtil.class 22KB
.classpath 1001B
共 47 条
- 1
资源评论
- 张guo松2018-10-20已下载了,还没有看
zhang.kaigang
- 粉丝: 14
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功