『壹』 如何用java實現word、excel等文檔在線預覽
java實現辦公文件在線預覽功能是一個大家在工作中也許會遇到的需求,網上有些公司專門提供這樣的服務,不過需要收費;如果想要免費的,可以用openoffice,實現原理就是:
通過第三方工具openoffice,將word、excel、ppt、txt等文件轉換為pdf文件流;
當然如果裝了Adobe Reader XI,那把pdf直接拖到瀏覽器頁面就可以直接打開預覽,前提就是瀏覽器支持pdf文件瀏覽。
本文主要介紹通過poi實現word、excel、ppt轉pdf流,這樣就可以在瀏覽器上實現預覽了。
1.到官網下載Apache OpenOffice 安裝包,安裝運行。
2.再項目的pom文件中引入依賴
<!--openoffice--><dependency><groupId>com.artofsolving</groupId><artifactId>jodconverter</artifactId><version>2.2.1</version></dependency>3.將word、excel、ppt轉換為pdf流的工具類代碼
importcom.artofsolving.jodconverter.DefaultDocumentFormatRegistry;importcom.artofsolving.jodconverter.DocumentConverter;importcom.artofsolving.jodconverter.DocumentFormat;importcom.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;importcom.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;importcom.artofsolving.jodconverter.openoffice.converter.;importjava.io.*;importjava.net.HttpURLConnection;importjava.net.URL;importjava.net.URLConnection;/***文件格式轉換工具類**@authortarzan*@version1.0*@sinceJDK1.8*/publicclassFileConvertUtil{/**默認轉換後文件後綴*/_SUFFIX="pdf";/**openoffice_port*/_PORT=8100;/***方法描述office文檔轉換為PDF(處理本地文件)**@paramsourcePath源文件路徑*@paramsuffix源文件後綴*@returnInputStream轉換後文件輸入流*@authortarzan*/(StringsourcePath,Stringsuffix)throwsException{FileinputFile=newFile(sourcePath);InputStreaminputStream=newFileInputStream(inputFile);returncovertCommonByStream(inputStream,suffix);}/***方法描述office文檔轉換為PDF(處理網路文件)**@paramnetFileUrl網路文件路徑*@paramsuffix文件後綴*@returnInputStream轉換後文件輸入流*@authortarzan*/(StringnetFileUrl,Stringsuffix)throwsException{//創建URLURLurl=newURL(netFileUrl);//試圖連接並取得返回狀態碼URLConnectionurlconn=url.openConnection();urlconn.connect();HttpURLConnectionhttpconn=(HttpURLConnection)urlconn;inthttpResult=httpconn.getResponseCode();if(httpResult==HttpURLConnection.HTTP_OK){InputStreaminputStream=urlconn.getInputStream();returncovertCommonByStream(inputStream,suffix);}returnnull;}/***方法描述將文件以流的形式轉換**@paraminputStream源文件輸入流*@paramsuffix源文件後綴*@returnInputStream轉換後文件輸入流*@authortarzan*/(InputStreaminputStream,Stringsuffix)throwsException{ByteArrayOutputStreamout=newByteArrayOutputStream();=newSocketOpenOfficeConnection(OPENOFFICE_PORT);connection.connect();DocumentConverterconverter=new(connection);=();DocumentFormattargetFormat=formatReg.getFormatByFileExtension(DEFAULT_SUFFIX);DocumentFormatsourceFormat=formatReg.getFormatByFileExtension(suffix);converter.convert(inputStream,sourceFormat,out,targetFormat);connection.disconnect();(out);}/***方法描述outputStream轉inputStream**@authortarzan*/(finalOutputStreamout)throwsException{ByteArrayOutputStreambaos=(ByteArrayOutputStream)out;returnnewByteArrayInputStream(baos.toByteArray());}publicstaticvoidmain(String[]args)throwsIOException{//convertNetFile("http://172.16.10.21/files/home/upload/department/base/.doc",".pdf");//convert("c:/Users/admin/Desktop/2.pdf","c:/Users/admin/Desktop/3.pdf");}}4.serve層在線預覽方法代碼
/***@Description:系統文件在線預覽介面*@Author:tarzan*/publicvoidonlinePreview(Stringurl,HttpServletResponseresponse)throwsException{//獲取文件類型String[]str=SmartStringUtil.split(url,"\.");if(str.length==0){thrownewException("文件格式不正確");}Stringsuffix=str[str.length-1];if(!suffix.equals("txt")&&!suffix.equals("doc")&&!suffix.equals("docx")&&!suffix.equals("xls")&&!suffix.equals("xlsx")&&!suffix.equals("ppt")&&!suffix.equals("pptx")){thrownewException("文件格式不支持預覽");}InputStreamin=FileConvertUtil.convertNetFile(url,suffix);OutputStreamoutputStream=response.getOutputStream();//創建存放文件內容的數組byte[]buff=newbyte[1024];//所讀取的內容使用n來接收intn;//當沒有讀取完時,繼續讀取,循環while((n=in.read(buff))!=-1){//將位元組數組的數據全部寫入到輸出流中outputStream.write(buff,0,n);}//強制將緩存區的數據進行輸出outputStream.flush();//關流outputStream.close();in.close();}5.controler層代碼
@ApiOperation(value="系統文件在線預覽介面bytarzan")@PostMapping("/api/file/onlinePreview")publicvoidonlinePreview(@RequestParam("url")Stringurl,HttpServletResponseresponse)throwsException{fileService.onlinePreview(url,response);}鏈接:blog.csdn.net/weixin_40986713/article/details/109527294
『貳』 前端怎麼在線預覽word文件ofd文件在線預覽呢
對於前端開發者來說,想要在手機(移動端)上預覽Word文件(ofd格式),即使沒有後端支持,也是完全可以實現的。只需要藉助特定的工具和服務。只需一行JavaScript代碼,你就能輕松集成到項目中。預覽的實現方法相當直接,通過將你的Word文件鏈接拼接到預覽地址上,例如:
預覽地址的基本格式是:http://vw.usdoc.cn/?src= 文件的URL,比如預覽 "三好學生申請書.docx" 的鏈接為:http://vw.usdoc.cn/?src=https://zh.usdoc.cn/view/三好學生申請書.docx
這樣操作後,你將得到如下所示的在線預覽效果:
ofd在線預覽的實際展示
如果你需要處理更多文檔格式,如Word、PDF等,usdoc.cn提供了豐富的在線預覽功能,可以參考他們的服務進行操作。前端開發者無需過於擔心格式兼容性問題,usdoc.cn已經為你做好了底層處理。