windows下php實現在線預覽附件(pdf)
(寫的有點啰嗦,具體的實現方法只是粗體和代碼就夠了)
給市場部門用dede做個cms,需要附件在線查看。公司有個系統(就叫develop_cms吧)是已經實現的,本以為很容易,不過是下一個插件然后把附件的路徑傳進去就可以了,哪知道,遠沒有我想象的那么簡單。就簡單記錄一下最后實現的方法吧。
- google了一下,下載了flexpaper,里面一堆東西看着就嚇了一跳。也有很多相關的文章,但基本都只是分析flexpaper的參數和自帶的demo,可以預覽swf,其實工作原理是把文檔轉換成swf然后預覽的………………
- flexpaper有個配置頁面,如下,需要安裝swftools,里面有個pdf2swf,用來將pdf格式轉換成swf
- php目錄里估計就是調用pdf2swf轉換格式的,各種復雜,看的頭都大了。develop_cms里的實現方法很簡單,用exec執行一段命令行就搞定(當然不同格式不同對待),但是這個系統是在linux上,命令不一樣。於是在cmd相下試了一下,
C:\Program Files\swftools\pdf2swf.exe -t C:\117.pdf -s flashversion=9 -o C:\117.swf
好神奇,轉換成功~將轉換后的swf放到flexpaper里調用,果然可以顯示·
- 用exec()函數執行以上命令,沒有反應,先cd C:\Program Files\swftools\,還是不行,用exec('dir')查看當前目錄發現cd沒有效果,於是把pdf2swf.exe(是的,只有這一個文件)放到F盤網站目錄里,done! php代碼如下
$dir = dirname(__FILE__) . "\\flexpaper"; $source = str_replace('plus\\flexpaper','uploads\\inner\\', $dir) . $file_name; $convert = $dir . "\\docs\\{$file_name}.swf"; $command = $dir . "\\exe\\pdf2swf.exe -t \"{$source}\" -s flashversion=9 -o \"{$convert}\""; $re; exec($command,$re,$re);
- 當然還有js的配置
<link rel="stylesheet" type="text/css" href="/flexpaper/css/flexpaper.css" /> <script type="text/javascript" src="/flexpaper/js/flexpaper.js"></script> <script type="text/javascript" src="/flexpaper/js/flexpaper_handlers.js"></script> <div id="documentViewer" class="flexpaper_viewer" style="width:100%;height:500px;"></div> <script type="text/javascript"> $('#documentViewer').FlexPaperViewer( { config : { SWFFile : , //轉換后的swf路徑 jsDirectory : '/flexpaper/js/', 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', RenderingOrder : 'flash', StartAtPage : '', ViewModeToolsVisible : true, ZoomToolsVisible : true, NavToolsVisible : true, CursorToolsVisible : true, SearchToolsVisible : true, WMode : 'window', localeChain: 'en_US' }} ); </script>
- office等需要另外的軟件來轉換,暫時還沒搞。
- 轉載自http://www.cnblogs.com/roving/archive/2013/09/05/3302933.html