请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

windows下php实现在线预览附件(pdf)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

(写的有点啰嗦,具体的实现方法只是粗体和代码就够了)

给市场部门用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等需要另外的软件来转换,暂时还没搞

 

拖了两周终于写完了,继续加油~


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap