设为首页 收藏本站
查看: 874|回复: 0

[经验分享] windows下php实现在线预览附件(pdf)

[复制链接]

尚未签到

发表于 2015-8-24 12:34:57 | 显示全部楼层 |阅读模式
  (写的有点啰嗦,具体的实现方法只是粗体和代码就够了)
  给市场部门用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等需要另外的软件来转换,暂时还没搞
  
  拖了两周终于写完了,继续加油~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-103498-1-1.html 上篇帖子: 判断文件是否存在的相关细节(PHP) 下篇帖子: .NET程序员学PHP:static关键字
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表