poi word转html
2013-12-27 21:46
183 查看
poi word转html
最近正在开发一个集团门户网站,一些网站上的信息都是通过后台处理生成静态HTML
文件,在网站上有大量的文字信息显示,我们不可能针对每个html进行人工处理,为了减少人工处理找了很多word转html的工具来处理,有openOffice, openOffice主要的缺点会打word中的图片给压缩,html中显示出来的图片不是很理想;
EwebEditor 在线编辑器,这个是付费的,想必大家也不会用,最后还是选择了POI来做这件事
Word 内容
转换结果
html源码
注:转换前最好能将 word 文档的视图改成web版 视图
java code
最近正在开发一个集团门户网站,一些网站上的信息都是通过后台处理生成静态HTML
文件,在网站上有大量的文字信息显示,我们不可能针对每个html进行人工处理,为了减少人工处理找了很多word转html的工具来处理,有openOffice, openOffice主要的缺点会打word中的图片给压缩,html中显示出来的图片不是很理想;
EwebEditor 在线编辑器,这个是付费的,想必大家也不会用,最后还是选择了POI来做这件事
Word 内容
转换结果
html源码
注:转换前最好能将 word 文档的视图改成web版 视图
java code
package com.mzule.doc2html.util; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.util.List; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.apache.commons.io.output.ByteArrayOutputStream; 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.model.PicturesTable; import org.apache.poi.hwpf.usermodel.CharacterRun; import org.apache.poi.hwpf.usermodel.Paragraph; import org.apache.poi.hwpf.usermodel.Picture; import org.apache.poi.hwpf.usermodel.PictureType; import org.apache.poi.hwpf.usermodel.Range; import org.apache.poi.hwpf.usermodel.Table; import org.apache.poi.hwpf.usermodel.TableCell; import org.apache.poi.hwpf.usermodel.TableIterator; import org.apache.poi.hwpf.usermodel.TableRow; import org.w3c.dom.Document; public class Word2Html { public static void main(String argv[]) { try { //word 路径 html输出路径 convert2Html("d:/test/test.doc","d:/test/1.html"); } catch (Exception e) { e.printStackTrace(); } } public static void writeFile(String content, String path) { FileOutputStream fos = null; BufferedWriter bw = null; try { File file = new File(path); fos = new FileOutputStream(file); bw = new BufferedWriter(new OutputStreamWriter(fos,"GB2312")); bw.write(content); } catch (FileNotFoundException fnfe) { fnfe.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { try { if (bw != null) bw.close(); if (fos != null) fos.close(); } catch (IOException ie) { } } } public static void convert2Html(String fileName, String outPutFile) throws TransformerException, IOException, ParserConfigurationException { HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(fileName));//WordToHtmlUtils.loadDoc(new FileInputStream(inputFile)); 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 ) { //html 中 图片标签中 显示的图片路路径 <img src="d:/test/0.jpg"/> return "d:/test/"+suggestedName; } } ); wordToHtmlConverter.processDocument(wordDocument); //save pictures List pics=wordDocument.getPicturesTable().getAllPictures(); if(pics!=null){ for(int i=0;i<pics.size();i++){ Picture pic = (Picture)pics.get(i); System.out.println(); try { //word中图片的存储路径 pic.writeImageContent(new FileOutputStream("D:/test/" + pic.suggestFullFileName())); } catch (FileNotFoundException e) { e.p 4000 rintStackTrace(); } } } Document htmlDocument = wordToHtmlConverter.getDocument(); ByteArrayOutputStream out = new ByteArrayOutputStream(); DOMSource domSource = new DOMSource(htmlDocument); StreamResult streamResult = new StreamResult(out); TransformerFactory tf = TransformerFactory.newInstance(); Transformer serializer = tf.newTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, "GB2312"); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); serializer.setOutputProperty(OutputKeys.METHOD, "html"); serializer.transform(domSource, streamResult); out.close(); writeFile(new String(out.toByteArray()), outPutFile); } }
相关文章推荐
- 8小时学会HTML
- C# Winform 中webBrowser显示html内容时禁止错误提示的方法
- html
- Html.DropDownList的用法
- HTML 文本格式化
- HTML中div与span的区别(共同点与不同点)
- HTML之DOCTYPE
- html,shtml和htm的区别
- Mediawiki编辑页面的时候html符号不直接输出问题
- 如何使用ITEXTSHARP将HTML代码字符串写进PDF
- 用HTML Help Workshop制作chm使用帮助文件的教程
- html 注释 ie
- html页面的三个width: document, window, screen
- HTML总结
- __HTML_5读取文件API
- html checked
- HTML <!DOCTYPE> 标签
- html中几个符号的转义
- 利用POI将word转换成html实现在线阅读
- html style的width不起作用