windows下php實現在線預覽附件(pdf)


windows下php實現在線預覽附件(pdf)

(寫的有點啰嗦,具體的實現方法只是粗體和代碼就夠了)

給市場部門用dede做個cms,需要附件在線查看。公司有個系統(就叫develop_cms吧)是已經實現的,本以為很容易,不過是下一個插件然后把附件的路徑傳進去就可以了,哪知道,遠沒有我想象的那么簡單。就簡單記錄一下最后實現的方法吧。

  1. google了一下,下載了flexpaper,里面一堆東西看着就嚇了一跳。也有很多相關的文章,但基本都只是分析flexpaper的參數和自帶的demo,可以預覽swf,其實工作原理是把文檔轉換成swf然后預覽的………………
  2. flexpaper有個配置頁面,如下,需要安裝swftools,里面有個pdf2swf,用來將pdf格式轉換成swf
  3. 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里調用,果然可以顯示·

  4. 用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);
    復制代碼
  5. 當然還有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>
    復制代碼
  6. office等需要另外的軟件來轉換,暫時還沒搞。
  7. 轉載自http://www.cnblogs.com/roving/archive/2013/09/05/3302933.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM