仿百度,豆瓣讀書文庫閱讀器

來源:互聯網
上載者:User

FlexPaper是一個開源輕量級的在瀏覽器上顯示各種文檔的組件,被設計用來與PDF2SWF一起使用, 使在Flex中顯示PDF成為可能,而這個過程並無需PDF軟體環境的支援。它可以被當做Flex的庫來使用。

另外你也可以通過將一些例如Word、PPT等文檔轉成PDF,然後實現線上瀏覽。

利用 FlexPaper 基於Flex實現,可以線上瀏覽PDF文檔,而不要PDF軟體支援。它支援的副檔名就是.swf,所以再需要一款軟體,使得PDF自動轉換為SWF格式。它就是swftools 。操作很簡單,首先第一步:下載swftoolshttp://www.swftools.org/download.htm安裝後可以先試下裡面的命令C:\SWFTools\pdf2swf Paper3.pdf -o Paper3.swf 當然安裝目錄自己指定,Papaer3.pdf也是自己指定路徑。第二步:下載http://flexpaper.devaldi.com/download/Flash版本下載完後開啟可以發現裡面有個index.html,查看內容可以得到一段script指令碼<script type="text/javascript" src="js/flexpaper_flash.js"></script>    </head>     <body>     <div style="position:absolute;left:10px;top:10px;">       <a id="viewerPlaceHolder" style="width:680px;height:480px;display:block"></a>              <script type="text/javascript"> var fp = new FlexPaperViewer('FlexPaperViewer','viewerPlaceHolder', { config : {SwfFile : escape('Paper.swf'),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: 'en_US'}});       </script>        </div>參數基本可以參考英文,裡面的Paper.swf就是調用的檔案。我現在放一個自己的PDF檔案,然後運行這段程式可以看到

 

 

很簡單的,如果沒有負載檔案,那麼就是要到http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065將檔案添加為信任才行。

 

一. 使用PDF2SWF準備好你的文檔

首先要將PDF轉成SWF,這步可以使用開源的SwfTools自動完成

1.下載安裝 SwfTools,當前最新版本是0.9
2. 轉換PDF到SWF,可以通過命令列的方式,例如將Paper3.pdf轉換成Paper3.swf
C:\SWFTools\pdf2swf Paper3.pdf -o Paper3.swf

二. 使用已經編譯好的FlexPaper的flash版本瀏覽你的文檔

  1. 下載並解壓出已經編譯好的FlexPaper
  2. zip檔案包含一個例子檔案叫做FlexPaperViewer.html,它向你展示了需要傳給FlexPaper的 基本參數
    var params = {
    SwfFile : "Paper.swf",
    Scale : 0.6
    }
    swfobject.embedSWF("FlexPaperViewer.swf","cb","500","500","9.0.0","js/swfobject/expressInstall.swf", params);

    //SwfFile參數是你想顯示的檔案,Scale是0-1之間的數,表示顯示的放大參數

  3. 複製你建立出來的swf和PDF2SWF到解壓縮出的相同目錄
  4. 確定你添加了FlexPaperViewer.swf

三. 在Flex中使用FlexPaper

1. 下載FlexPaper SWC,添加到你的Flex項目libs中
2. 複製你用PDF2SWF建立的SWF到你的bin-debug目錄,如Paper3.swf,添加FlexPaper組 件到你的flex代碼中Xml代碼

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    width="800" height="500"
    xmlns:flexpaper="com.devaldi.controls.flexpaper.*">
   
    <flexpaper:FlexPaperViewer width="800" height="500"
        Scale="1" SwfFile="Paper3.swf" />
   
</mx:Application>

 網友寫的一個方法可以利用JAVA轉化pdf為swf:

/** * 將pdf檔案轉化成swf檔案  * @param fileName 檔案的絕對路徑 * @param destPath 目標路徑 * @return -1:源檔案不存在,-2:格式不正確,-3:發生異常,0:轉化成功  * @author fanglm created on Jul 9, 2010 1:13:04 PM */public static int ConvertPdfToSwf(String fileName,String destPath){String destName = "",fileExt = "";StringBuffer command = new StringBuffer();fileExt = fileName.split("//.")[fileName.split("//.").length-1].toLowerCase();try{File file = new File(fileName);if(!file.exists()){//判斷源檔案是否存在return -1;}else if(!fileExt.equals("pdf")){//判斷檔案是否是pdf格式的檔案return -2;}else{String swftoolsPath = "D://SWFTools";//擷取pdf轉swf工具的路徑if(!swftoolsPath.substring(swftoolsPath.length()-1, swftoolsPath.length()).equals("//")){swftoolsPath = swftoolsPath+"//";    //在目錄後加 "/"}if(!destPath.substring(destPath.length()-1, destPath.length()).equals("//")){destPath = destPath+"//";    //在目錄後加 "/"}File destFile = new File(destPath);if(!destFile.exists()){//目標檔案路徑如果不存在,則建立目錄destFile.mkdirs();}destName = file.getName().substring(0, file.getName().length()-4)+".swf";//目標檔案名稱command.append(swftoolsPath).append("pdf2swf.exe ").append(fileName).append(" -o ").append(destPath).append(destName);Process pro = Runtime.getRuntime().exec(command.toString());BufferedReader buffer = new BufferedReader(new InputStreamReader(pro.getInputStream()));while(buffer.readLine()!=null);return pro.exitValue();}}catch (Exception e){e.printStackTrace();return -3;}}

如果遇到PDF2SWF轉換隻有一頁的PDF文檔,在FlexPaper不顯示,在執行的命令後面加上“-T 9”轉換成flash 9 格式即可解決。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.