java实现在线预览--poi实现word、excel、ppt转html的方法
java实现在线预览
--之poi实现word、excel、ppt转html,具体内容如下所示:
###简介
java实现在线预览功能是一个大家在工作中也许会遇到的需求,如果公司有钱,直接使用付费的第三方软件或者云在线预览服务就可以了,例如永中office、officeweb365(http://www.officeweb365.com/)他们都有云在线预览服务,就是要钱0.0
如果想要免费的,可以用openoffice,还需要借助其他的工具(例如swfTools、FlexPaper等)才行,可参考这篇文章http://blog.csdn.net/z69183787/article/details/17468039,写的挺细的,实现原理就是:
1.通过第三方工具openoffice,将word、excel、ppt、txt等文件转换为pdf文件;
2.通过swfTools将pdf文件转换成swf格式的文件;
3.通过FlexPaper文档组件在页面上进行展示。
当然如果装了AdobeReaderXI,那把pdf直接拖到浏览器页面就可以直接打开预览,这样就不需要步骤2、3了,前提就是客户装了AdobeReaderXI这个pdf阅读器。
我这里介绍通过poi实现word、excel、ppt转html,这样就可以放在页面上了。
###word转html
packagewordToHtml; importjava.io.ByteArrayOutputStream; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.InputStream; importjava.util.List; importjavax.xml.parsers.DocumentBuilderFactory; importjavax.xml.transform.OutputKeys; importjavax.xml.transform.Transformer; importjavax.xml.transform.TransformerFactory; importjavax.xml.transform.dom.DOMSource; importjavax.xml.transform.stream.StreamResult; importorg.apache.commons.io.FileUtils; importorg.apache.poi.hwpf.HWPFDocument; importorg.apache.poi.hwpf.converter.PicturesManager; importorg.apache.poi.hwpf.converter.WordToHtmlConverter; importorg.apache.poi.hwpf.usermodel.Picture; importorg.apache.poi.hwpf.usermodel.PictureType; importorg.w3c.dom.Document; publicclassPoiWordToHtml{ publicstaticvoidmain(String[]args)throwsThrowable{ finalStringpath="D:\\poi-test\\wordToHtml\\"; finalStringfile="人员选择系分.doc"; InputStreaminput=newFileInputStream(path+file); HWPFDocumentwordDocument=newHWPFDocument(input); WordToHtmlConverterwordToHtmlConverter=newWordToHtmlConverter( DocumentBuilderFactory.newInstance().newDocumentBuilder() .newDocument()); wordToHtmlConverter.setPicturesManager(newPicturesManager(){ publicStringsavePicture(byte[]content,PictureTypepictureType, StringsuggestedName,floatwidthInches,floatheightInches){ returnsuggestedName; } }); wordToHtmlConverter.processDocument(wordDocument); Listpics=wordDocument.getPicturesTable().getAllPictures(); if(pics!=null){ for(inti=0;i###excel转html
packageexcelToHtml; importjava.io.ByteArrayOutputStream; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.InputStream; importjava.util.List; importjavax.xml.parsers.DocumentBuilderFactory; importjavax.xml.transform.OutputKeys; importjavax.xml.transform.Transformer; importjavax.xml.transform.TransformerFactory; importjavax.xml.transform.dom.DOMSource; importjavax.xml.transform.stream.StreamResult; importorg.apache.commons.io.FileUtils; importorg.apache.poi.hssf.converter.ExcelToHtmlConverter; importorg.apache.poi.hssf.usermodel.HSSFWorkbook; importorg.apache.poi.hwpf.converter.PicturesManager; importorg.apache.poi.hwpf.converter.WordToHtmlConverter; importorg.apache.poi.hwpf.usermodel.Picture; importorg.apache.poi.hwpf.usermodel.PictureType; importorg.w3c.dom.Document; publicclassPoiExcelToHtml{ finalstaticStringpath="D:\\poi-test\\excelToHtml\\"; finalstaticStringfile="exportExcel.xls"; publicstaticvoidmain(Stringargs[])throwsException{ InputStreaminput=newFileInputStream(path+file); HSSFWorkbookexcelBook=newHSSFWorkbook(input); ExcelToHtmlConverterexcelToHtmlConverter=newExcelToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument()); excelToHtmlConverter.processWorkbook(excelBook); Listpics=excelBook.getAllPictures(); if(pics!=null){ for(inti=0;i###ppt转html
其实只是ppt转图片,有了图片后放到页面上去,点击下一页就一张张显示就可以了。这里只介绍ppt转图片的过程。
packagepptToImg; importjava.awt.Dimension; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.IOException; importjava.awt.Color; importjava.awt.Dimension; importjava.awt.Graphics2D; importjava.awt.geom.Rectangle2D; importjava.awt.image.BufferedImage; importorg.apache.poi.hslf.model.TextRun; importorg.apache.poi.hslf.record.Slide; importorg.apache.poi.hslf.usermodel.RichTextRun; importorg.apache.poi.hslf.usermodel.SlideShow; publicclassPPTtoImage{ publicstaticvoidmain(String[]args){ //读入PPT文件 Filefile=newFile("D:/poi-test/pptToImg/test.ppt"); doPPTtoImage(file); } publicstaticbooleandoPPTtoImage(Filefile){ booleanisppt=checkFile(file); if(!isppt){ System.out.println("Theimageyouspecifydon'texit!"); returnfalse; } try{ FileInputStreamis=newFileInputStream(file); SlideShowppt=newSlideShow(is); is.close(); Dimensionpgsize=ppt.getPageSize(); org.apache.poi.hslf.model.Slide[]slide=ppt.getSlides(); for(inti=0;ippt转图片有个缺陷,就是ppt里不是宋体的字有些可能会变成框框。
以上都需要引入poi的jar包。
要实现在线预览,只需把转换得到的html在新标签页打开或者镶嵌到某块区域就可以展现了。
总结
以上所述是小编给大家介绍的java实现在线预览--poi实现word、excel、ppt转html的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!