類似百度文庫pdf2swf+flexpaper解決pdf在線閱讀的效果1:工具準備swftools.exe 下載http://www.swftools.org/download.html安裝至D盤SWFTools提供了一系列將各種文件轉成swf的工具:font2swf.exegif2swf.exejpeg2swf.exepdf2swf.exepng2swf.exewav2swf.exe這里我們只使用pdf2swf.exe
flexpaper下載http://code.google.com/p/flexpaper/這里我們使用已經編譯好的FlexPaper的Flash版本
2:示例語言,這里我使用的兩種開發環境做示例 php示例 由pdf生成swf文件
[php]view plaincopyPRint?- <?php
- /*
- *Createdon2010-11-17
- *
- *Tochangethetemplateforthisgeneratedfilegoto
- *Window-Preferences-PHPeclipse-PHP-CodeTemplates
- */
- //獲取文件所在目錄
- $dir=dirname(__FILE__);
- //刪除測試文件
- @unlink($dir."http://test.swf");
- //使用pdf2swf轉換命令
- $command="D:/SWFTools/pdf2swf.exe-t/"".$dir."http://test.pdf/"-o/"".$dir."http://test.swf/"-sflashversion=9";
- //創建shell對象
- $WshShell=newCOM("WScript.Shell");
- //執行cmd命令
- $oExec=$WshShell->Run("cmd/C".$command,0,true);
- ?>
java示例
[java]view plaincopyprint?- <%
- /*
- *Createdon2010-11-17
- */
- //獲取文件所在目錄
- Stringpath=request.getRealPath("/");
- //使用pdf2swf轉換命令
- Stringcommand="D:/SWFTools/pdf2swf.exe-t/""+path+"http://test.pdf/"-o/""+path+"http://test.swf/"-sflashversion=9";
- //執行cmd命令
- Runtime.getRuntime().exec("cmd/c"+command);
- %>
以上是php,java將pdf轉換成swf方式,那顯示呢,這樣我們會使用到flexpaper,以下是flexpaper的使用 使用flexpaper展現swf
[Javascript]view plaincopyprint?- <scripttype="text/javascript"src="js/swfobject/swfobject.js"></script>
- <scripttype="text/javascript">
- varswfVersionStr="10.0.0";
- varxiSwfUrlStr="playerProductInstall.swf";
- varflashvars={
- SwfFile:escape("test.swf"),
- Scale:0.6,
- ZoomTransition:"eaSEOut",
- ZoomTime:0.5,
- ZoomInterval:0.1,
- FitPageOnLoad:false,
- FitWidthOnLoad:true,
- PrintEnabled:true,
- FullScreenAsMaxWindow:false,
- ProgressiveLoading:true,
- PrintToolsVisible:true,
- ViewModeToolsVisible:true,
- ZoomToolsVisible:true,
- FullScreenVisible:true,
- NavToolsVisible:true,
- CursorToolsVisible:true,
- SearchToolsVisible:true,
- localeChain:"zh_CN"
- };
- varparams={
- }
- params.quality="high";
- params.bgcolor="#ffffff";
- params.allowscriptaccess="sameDomain";
- params.allowfullscreen="true";
- varattributes={};
- attributes.id="FlexPaperViewer";
- attributes.name="FlexPaperViewer";
- swfobject.embedSWF(
- "FlexPaperViewer.swf","flashContent",
- "650","500",
- swfVersionStr,xiSwfUrlStr,
- flashvars,params,attributes);
- swfobject.createCSS("#flashContent","display:block;text-align:left;");
- </script>
- <body>
- <divstyle="position:absolute;left:10px;top:10px;">
- <divid="flashContent">
- </div>
- </div>
- </body>
通過上述方式我們可以將pdf轉換成相應的swf文件,并通過flexpaper顯示,防止用戶下載,或copy。

pdf2swf的詳細參數說明,上網百度或者Google都能查到,但是注意的最好指定flashversion 為9,防止出現一些意外的錯誤。pdf2swf 中并不是所有的pdf都能轉換,加密的pdf pdf2swf轉換不了
flexpaper 的參數詳細說明請參考http://code.google.com/p/flexpaper/wiki/Parameters
flexpaper 常用的APIhttp://code.google.com/p/flexpaper/wiki/API
如果出現亂碼問題可能是字符集,網上有很多的相關解決方法可以查詢【我沒有碰到字符集堵的問題】。
還有pdf中含有圖片可能轉換成swf后圖片不大清晰。
Word,wps,txt等文檔也可以采用該方式轉換,但工具不一定為swftools
上傳的flexpaper附件中已經包含flexpaper中相關文件不用重新下載,只要下載swftools,并安裝。flexpaper附件中包含了pdf2swf.jsp與pdf2swf.php兩個文件及flexpaper相關的組件可以在java或php環境中運行。