利用POI实现Word和 Html互转(可以实现在线预览)
2016-02-01 12:44
761 查看
利用POI将Word转换为Html,以便在浏览器上预览
相关参考链接:
JSP实现word文档的上传,在线预览,下载
Java+FlexPaper+swfTools仿文库文档在线阅读
将Html文本写入到Word文件
package com.vito.demo.test; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; import java.util.List; 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.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.w3c.dom.Document; public class PoiWordToHtml { public static void main(String[] args) throws Throwable { final String path = "G:\\doc\\"; final String file = "客户需求文档.doc"; InputStream input = new FileInputStream(path + 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) { return suggestedName; } }); wordToHtmlConverter.processDocument(wordDocument); List pics = wordDocument.getPicturesTable().getAllPictures(); if (pics != null) { for (int i = 0; i < pics.size(); i++) { Picture pic = (Picture) pics.get(i); try { pic.writeImageContent(new FileOutputStream(path + pic.suggestFullFileName())); } catch (FileNotFoundException e) { e.printStackTrace(); } } } Document htmlDocument = wordToHtmlConverter.getDocument(); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); DOMSource domSource = new DOMSource(htmlDocument); 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); outStream.close(); String content = new String(outStream.toByteArray()); FileUtils.write(new File(path, "1.html"), content, "utf-8"); } }
相关参考链接:
JSP实现word文档的上传,在线预览,下载
Java+FlexPaper+swfTools仿文库文档在线阅读
将Html文本写入到Word文件
public void htmlToWord2() throws Exception { InputStream bodyIs = new FileInputStream("f:\\1.html"); InputStream cssIs = new FileInputStream("f:\\1.css"); String body = this.getContent(bodyIs); String css = this.getContent(cssIs); //拼一个标准的HTML格式文档 String content = "<html><head><style>" + css + "</style></head><body>" + body + "</body></html>"; InputStream is = new ByteArrayInputStream(content.getBytes("GBK")); OutputStream os = new FileOutputStream("f:\\1.doc"); this.inputStreamToWord(is, os); } /** * 把is写入到对应的word输出流os中 * 不考虑异常的捕获,直接抛出 * @param is * @param os * @throws IOException */ private void inputStreamToWord(InputStream is, OutputStream os) throws IOException { POIFSFileSystem fs = new POIFSFileSystem(); //对应于org.apache.poi.hdf.extractor.WordDocument fs.createDocument(is, "WordDocument"); fs.writeFilesystem(os); os.close(); is.close(); } /** * 把输入流里面的内容以UTF-8编码当文本取出。 * 不考虑异常,直接抛出 * @param ises * @return * @throws IOException */ private String getContent(InputStream... ises) throws IOException { if (ises != null) { StringBuilder result = new StringBuilder(); BufferedReader br; String line; for (InputStream is : ises) { br = new BufferedReader(new InputStreamReader(is, "UTF-8")); while ((line=br.readLine()) != null) { result.append(line); } } return result.toString(); } return null; }
相关文章推荐
- js兼容火狐显示上传图片预览效果的方法
- 在页面预览客户端本地图片的js代码(兼容FF IE)
- C#中的FileUpload 选择后的预览效果具体实现
- javascript 图片上传预览-兼容标准
- jsp中点击图片弹出文件上传界面及预览功能的实现
- 兼容IE和FF的图片上传前预览js代码
- javascript打印大全(打印页面设置/打印预览代码)
- jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
- js上传图片及预览功能实例分析
- JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
- JS上传图片前实现图片预览效果的方法
- 纯JS实现本地图片预览的方法
- js实现上传图片预览的方法
- 上传图片预览JS脚本 Input file图片预览的实现示例
- jquery实现图片上传之前预览的方法
- Java 使用poi把数据库中数据导入Excel的解决方法
- java使用POI读取properties文件并写到Excel的方法
- java使用poi读取ppt文件和poi读取excel、word示例
- Java中使用Apache POI读取word文件简单示例