zoukankan      html  css  js  c++  java
  • 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 Filesswftoolspdf2swf.exe -t C:117.pdf -s flashversion=9 -o C:117.swf

      好神奇,转换成功~将转换后的swf放到flexpaper里调用,果然可以显示·

    4. 用exec()函数执行以上命令,没有反应,先cd C:Program Filesswftools,还是不行,用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="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等需要另外的软件来转换,暂时还没搞

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

  • 相关阅读:
    Triggering effects when a container is resized
    Flex2:无边框透明背景MenuBar实现
    Using the isBranch() method to determine if a Tree item is a branch or leaf
    Flex3 Style 编辑工具
    Displaying a Tree control as a pop up for a Flex PopUpButton control
    Using a CheckBox control as a list item renderer in Flex
    Creating a ControlBar container in Flex using ActionScript
    .NET下的多线程编程4利用thread.Start()传递参数
    委托使用的实例
    算法大全—1冒泡排序法
  • 原文地址:https://www.cnblogs.com/roving/p/3302933.html
Copyright © 2011-2022 走看看