類似百度文庫pdf2swf+flexpaper解決pdf在線閱讀的效果,pdf2swfflexpaper
1:工具准備
swftools.exe 下載
http://www.swftools.org/download.html
安裝至D盤
SWFTools提供了一系列將各種文件轉成swf的工具:
font2swf.exe
gif2swf.exe
jpeg2swf.exe
pdf2swf.exe
png2swf.exe
wav2swf.exe
這裡我們只使用pdf2swf.exe
flexpaper下載
http://code.google.com/p/flexpaper/
這裡我們使用已經編譯好的FlexPaper的flash版本
2:示例語言,這裡我使用的兩種開發環境做示例
php示例
由pdf生成swf文件
[php] view plaincopyprint?
- <?php
- /*
- * Created on 2010-11-17
- *
- * To change the template for this generated file go to
- * Window - Preferences - PHPeclipse - PHP - Code Templates
- */
- //獲取文件所在目錄
- $dir=dirname(__FILE__) ;
- //刪除測試文件
- @unlink( $dir."\\test.swf" );
- //使用pdf2swf轉換命令
- $command= "D:/SWFTools/pdf2swf.exe -t \"".$dir."\\test.pdf\" -o \"".$dir."\\test.swf\" -s flashversion=9 ";
- //創建shell對象
- $WshShell = new COM("WScript.Shell");
- //執行cmd命令
- $oExec = $WshShell->Run("cmd /C ". $command, 0, true);
- ?>
java示例
[java] view plaincopyprint?
- <%
- /*
- * Created on 2010-11-17
- */
- //獲取文件所在目錄
- String path=request.getRealPath("/");
- //使用pdf2swf轉換命令
- String command= "D:/SWFTools/pdf2swf.exe -t \""+path+"\\test.pdf\" -o \""+path+"\\test.swf\" -s flashversion=9 ";
- //執行cmd命令
- Runtime.getRuntime().exec("cmd /c "+command);
- %>
以上是php,java將pdf轉換成swf方式,那顯示呢,這樣我們會使用到flexpaper,以下是flexpaper的使用
使用flexpaper展現swf
[javascript] view plaincopyprint?
- <script type="text/javascript" src="js/swfobject/swfobject.js"></script>
- <script type="text/javascript">
- var swfVersionStr = "10.0.0";
- var xiSwfUrlStr = "playerProductInstall.swf";
- var flashvars = {
- 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"
- };
-
- var params = {
-
- }
- params.quality = "high";
- params.bgcolor = "#ffffff";
- params.allowscriptaccess = "sameDomain";
- params.allowfullscreen = "true";
- var attributes = {};
- 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>
- <div >
- <div id="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 常用的API http://code.google.com/p/flexpaper/wiki/API
如果出現亂碼問題可能是字符集,網上有很多的相關解決方法可以查詢【我沒有碰到字符集堵的問題】。
還有pdf中含有圖片可能轉換成swf後圖片不大清晰。
word,wps,txt等文檔也可以采用該方式轉換,但工具不一定為swftools
上傳的flexpaper附件中已經包含flexpaper中相關文件不用重新下載,只要下載swftools,並安裝。
flexpaper附件中包含了pdf2swf.jsp與pdf2swf.php兩個文件及flexpaper相關的組件可以在java或php環境中運行。
:PDF2SWF轉換只有一頁的PDF文檔,在FlexPaper沒顯示
版本問題,建議卸載重裝
Java+FlexPaper+swfTools仿百度文庫文檔在線預覽系統設計與實現
用FlexPaper這個插件顯示,先把word轉成pdf再把pdf轉成swf文件,上傳上去就可以用FlexPaper播放了。注意服務器系統是不一樣的,所以間隔符不一樣,希望對你思路有所幫助