亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

學習Java模擬實現百度文檔在線瀏覽

2019-11-26 15:02:54
字體:
來源:轉載
供稿:網友

這個思路是我參考網上而來,代碼是我實現。
采用Apache下面的OpenOffice將資源文件轉化為pdf文件,然后將pdf文件轉化為swf文件,用FlexPaper瀏覽。
ok,
A、下載OpenOffice (轉換資源文件)
B、下載JodConverter(調用OpenOffice)
C、下載Swftools(Pdf2Swf)
D、下載 FlexPaper(瀏覽swf文件)

下載之后,先別急安裝,請看完這篇博文

1、先看我們的MyEclipse工程結構

2、將我們下載下來的jodconverter-2.2.2.zip解壓之后將所有的jar文件拷貝到baiduDoc的lib下面去

3、在WebRoot下面新建FlexPaper文件夾,將解壓后的FlexPaper全部拷貝到FlexPaper中去

4、新建BaiDuServlet.java文件

package com.baidu.util; import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.net.ConnectException; import javax.imageio.stream.FileImageInputStream;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import com.artofsolving.jodconverter.DocumentConverter;import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter; /** * @Author:NuoYan * @Date:2015-2-2 下午2:24:58  * TODO: 1、第一步,首先獲取到需要查看的文件 *    2、第二部,將獲取的文件(doc,xls,txt,ppt,03/07版本轉化為PDF),這一步需要調用OpenOffice *    3、第三部,將資源文件轉換好的PDF文件轉換為swf文件,使用FlexPaperViewer.swf進行瀏覽查看 */public class BaiDuServlet extends HttpServlet {  private File sourceFile;// 要轉化的源文件  private File pdfFile;// pdf中間文件對象  private File swfFile;// swf目標文件對象  private String filePath;// 用來保存文件路徑  private String fileName;// 不包括后綴名的文件名   public File getSourceFile() {    return sourceFile;  }   public void setSourceFile(File sourceFile) {    this.sourceFile = sourceFile;  }   public File getPdfFile() {    return pdfFile;  }   public void setPdfFile(File pdfFile) {    this.pdfFile = pdfFile;  }   public File getSwfFile() {    return swfFile;  }   public void setSwfFile(File swfFile) {    this.swfFile = swfFile;  }   public String getFilePath() {    return filePath;  }   public void setFilePath(String filePath) {    this.filePath = filePath;  }   public String getFileName() {    return fileName;  }   public void setFileName(String fileName) {    this.fileName = fileName;  }   public void doGet(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    String saveFileName = request.getParameter("savFile");    System.out.println(saveFileName);    String webPath = request.getRealPath("/");    filePath = webPath + "reader//" + saveFileName;    fileName = filePath.substring(0, filePath.lastIndexOf("."));    // 創建三個文件對象    sourceFile = new File(filePath);    pdfFile = new File(fileName + ".pdf");    swfFile = new File(fileName + ".swf");    System.out.println(pdfFile);    System.out.println(swfFile);    // 1、將源文件轉化為pdf格式文件    src2pdf();    try {      // 2、將pdf文件轉化為swf文件      pdf2swf();    } catch (Exception e) {      e.printStackTrace();    }    // 將轉化好的文件綁定到session上去    request.getSession().setAttribute("swfName", swfFile.getName());    System.out.println(swfFile.getName());    // 重定向到預覽頁面    response.sendRedirect(request.getContextPath() + "/reader/baseFile.jsp");  }   /**   * @Author:NuoYan   * @Date:2015-2-2 下午2:28:22 TODO://源文件轉化為PDF文件   */  private void src2pdf() {    if (sourceFile.exists()) {      // 如果不存在,需要轉份為PDF文件      if (!pdfFile.exists()) {        // 啟用OpenOffice提供的轉化服務        OpenOfficeConnection conn = new SocketOpenOfficeConnection(8100);        // 連接OpenOffice服務器        try {          conn.connect();          // 建立文件轉換器對象          DocumentConverter converter = new OpenOfficeDocumentConverter(              conn);          converter.convert(sourceFile, pdfFile);          // 斷開鏈接          conn.disconnect();          System.out.println("轉換成功");        } catch (ConnectException e) {          e.printStackTrace();        }      } else {        System.out.println("已經存在PDF文件,不需要在轉換?。?);      }    } else {      System.out.println("文件路徑不存在?。?!");    }   }   /**   * @Author:NuoYan   * @Date:2015-2-2 下午2:28:32   * @throws Exception   * TODO:PDF轉化為SWF文件   */  private void pdf2swf() throws Exception {    if (!swfFile.exists()) {      if (pdfFile.exists()) {        String command = "C://Pdf2swf//pdf2swf.exe "            + pdfFile.getPath() + " -o " + swfFile.getPath()            + " -T 9";        System.out.println("轉換命令:" + command);        // Java調用外部命令,執行pdf轉化為swf        Runtime r = Runtime.getRuntime();        Process p = r.exec(command);        System.out.println(loadStream(p.getInputStream()));        System.out.println("swf文件轉份成功?。?!");        System.out.println(swfFile.getPath());      } else {        System.out.println("不存在PDF文件");      }    }   }     private static String loadStream(InputStream in) throws Exception {    int len = 0;    in = new BufferedInputStream(in);    StringBuffer buffer = new StringBuffer();    while ((len = in.read()) != -1) {      buffer.append((char) len);    }    return buffer.toString();  } }

5、修改index.jsp

<%@ page language="java" import="java.util.*"pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head>  <title>百度文庫在線預覽</title>  <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page"> </head> <body>  <a href="<%=request.getContextPath()%>/BaiDuServlet?savFile=1234.xls">在線預覽</a> </body></html>

6、編寫baseFile.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>在線閱讀</title><script type="text/javascript" src="../FlexPaper/js/flexpaper_flash.js"></script><style type="text/css">html,body{height: 100%;}body {  margin: 0;padding: 0;overflow: auto;}#flashContent { display:none; }</style></head><body><div style="position:absolute;left:10px;top:10px;">      <a id="viewerPlaceHolder" style="width:1000px;height:480px;display:block"></a>      <script type="text/javascript">         var fp = new FlexPaperViewer(              '../FlexPaper/FlexPaperViewer',             'viewerPlaceHolder', { config : {             SwfFile : escape('../reader/<%=(String)session.getAttribute("swfName")%>'),             Scale : 0.6,              ZoomTransition : 'easeOut',             ZoomTime : 0.5,             ZoomInterval : 0.2,             FitPageOnLoad : true,             FitWidthOnLoad : false,             FullScreenAsMaxWindow : false,             ProgressiveLoading : false,             MinZoomSize : 0.2,             MaxZoomSize : 5,             SearchMatchAll : false,             InitViewMode : 'Portrait',             PrintPaperAsBitmap : false,                          ViewModeToolsVisible : true,             ZoomToolsVisible : true,             NavToolsVisible : true,             CursorToolsVisible : true,             SearchToolsVisible : true,                            localeChain: 'zh_CN'             }});      </script>    </div> </body></html>

注意baseFile.jsp中的代碼,不會你可以參考這里

/**************************************************************************************/

7、到這里就完成,需要注意的是:
(1)、swftools-2013-04-09-1007.exe文件安裝路徑不要太深,不然Java調用外部命令不能執行

(2)、

       

    2.1、紅色1標記路徑不能錯,我就犯這個錯誤了       
    2.2、紅色標記2還可以寫http://127.0.0.1:8080/baiduDoc/reader/...

(3)、啟動OpenOffice的命令,不是直接雙擊啟動的。官網啟動方式,使用cd命令打開安裝目錄!
安裝完openoffice后
A.安裝服務
cd C:/Program Files (x86)/OpenOffice4/program
這一步你可以看你的OpenOffice安裝哪里
執行
soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
B.查看是否安裝成功
   2.1查看端口對應的pid
   netstat -ano|findstr "8100"
   2.2查看pid對應的服務程序名
   tasklist|findstr "ipd值"

效果圖示:

以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黄色片免费观看| 国产精品一区二区三区免费视频| 亚洲精品一区中文| 国产精品视频免费在线观看| 26uuu亚洲国产精品| 久久免费在线观看| 欧美视频在线看| 中文字幕精品av| 亚洲美女激情视频| 亚洲自拍中文字幕| 91精品91久久久久久| 欧美激情xxxx性bbbb| 成人网欧美在线视频| 国产一区二区三区在线视频| 欧美大尺度在线观看| 久久好看免费视频| 岛国av在线不卡| 国产成人精品日本亚洲专区61| 日韩av在线资源| 欧美一区二区三区四区在线| 91精品国产乱码久久久久久蜜臀| 国产精品日韩一区| 国产精品久久久久久中文字| 国产精品777| 久久久亚洲影院| 日本精品视频在线播放| 欧美日韩国产成人高清视频| 91精品久久久久久久久久久久久| 国产精品福利在线观看| 中文字幕v亚洲ⅴv天堂| 97视频在线观看亚洲| 国产精品男人爽免费视频1| 久久久久999| 伊人久久大香线蕉av一区二区| 成人国产精品一区| 日本久久91av| 精品福利在线视频| 国产不卡av在线| 亚洲影院色无极综合| 国产精品欧美激情| 欧美xxxx综合视频| 国产成人高潮免费观看精品| 亚洲最大中文字幕| 精品成人av一区| 国产精品视频久久| 欧美香蕉大胸在线视频观看| 黑人巨大精品欧美一区二区三区| 久久99久久99精品免观看粉嫩| 97视频在线观看免费| 91亚洲精品久久久| 日韩精品亚洲元码| 精品夜色国产国偷在线| 久久久久久久电影一区| 国产日韩综合一区二区性色av| 亚洲第一视频网| 69视频在线免费观看| 久久久久久久久久久国产| 亚洲成色777777在线观看影院| 亚洲三级黄色在线观看| 69久久夜色精品国产7777| 国产91色在线|| 欧美日韩精品中文字幕| 欧美中文字幕在线视频| 国产日韩中文字幕| 日韩在线观看免费高清| 欧美大片欧美激情性色a∨久久| 97精品久久久| 欧美成人中文字幕在线| 日韩欧美在线视频日韩欧美在线视频| 久久综合色影院| 亚洲精品大尺度| 亚洲国产又黄又爽女人高潮的| 97超碰蝌蚪网人人做人人爽| 欧美最近摘花xxxx摘花| 国产一区二区三区在线观看视频| 亚洲精品国产福利| 91国产美女在线观看| 欧美在线视频一区| 国产视频在线一区二区| 中文字幕亚洲一区在线观看| 456国产精品| 国产精品久久久久久网站| 亚洲国产精品久久久| 狠狠躁18三区二区一区| 久久伊人精品一区二区三区| 久久亚洲国产成人| 97在线看免费观看视频在线观看| 日本伊人精品一区二区三区介绍| 国产成人在线一区| 成人黄色免费网站在线观看| 亚洲精品国精品久久99热一| 欧亚精品中文字幕| 狠狠躁18三区二区一区| 午夜剧场成人观在线视频免费观看| 欧美高清无遮挡| 4k岛国日韩精品**专区| 亚洲成色www8888| 欧美一区二区影院| 欧美国产日韩一区二区| 日韩精品亚洲元码| 欧美午夜女人视频在线| 国产精品美乳一区二区免费| 91九色视频导航| 欧美视频在线观看免费网址| 亚洲男人天堂手机在线| 久久久久亚洲精品国产| 欧美激情xxxx| 欧美成人激情图片网| 成人h视频在线观看播放| 欧美自拍大量在线观看| 亚州成人av在线| 日韩视频一区在线| 久久久国产成人精品| 久久韩国免费视频| 欧美黑人性生活视频| 欧美成年人视频网站| 日韩欧美aⅴ综合网站发布| 久久久亚洲国产天美传媒修理工| 国产精品91在线观看| 国产精品99久久99久久久二8| 日产精品久久久一区二区福利| 69精品小视频| 欧美大片免费看| 亚洲激情成人网| 亚洲欧美另类中文字幕| 亚洲视频999| 国产精品久久久久久久久久免费| 日韩av最新在线观看| 欧美精品videossex性护士| 久久琪琪电影院| 超碰精品一区二区三区乱码| 成人黄色在线播放| 国产精品va在线| 蜜臀久久99精品久久久久久宅男| 欧美床上激情在线观看| 91精品视频观看| 91高潮精品免费porn| 97在线免费视频| 色爱av美腿丝袜综合粉嫩av| 中文字幕视频在线免费欧美日韩综合在线看| 国产亚洲精品一区二区| 国产精品www| 欧美激情va永久在线播放| 亚洲国产精品视频在线观看| 国产亚洲一区二区在线| 精品国产一区av| 久久亚洲精品中文字幕冲田杏梨| 日韩欧美精品网站| 91精品国产91久久久久久久久| 久久久亚洲天堂| 国产日本欧美一区二区三区在线| 亚洲天堂网站在线观看视频| 日韩欧美中文第一页| 日韩一区二区精品视频| 日韩电影大全免费观看2023年上| 欧美日韩美女在线观看| 亚洲女人天堂色在线7777| 91亚洲va在线va天堂va国| 欧美在线免费观看| 亚洲香蕉伊综合在人在线视看| 日韩精品极品在线观看播放免费视频| 亚洲第一区第一页| 国产精品18久久久久久首页狼| www.国产精品一二区|