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:\.pdf -s flashversion= -o C:\.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等需要另外的软件来转换,暂时还没搞
拖了两周终于写完了,继续加油~
windows 下 php 实现在线预览附件(pdf)的更多相关文章
- Office在线预览及PDF在线预览的实现方式史上最全大集合
Office在线预览及PDF在线预览的实现方式大集合 一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPD ...
- python爬虫处理在线预览的pdf文档
引言 最近在爬一个网站,然后爬到详情页的时候发现,目标内容是用pdf在线预览的 比如如下网站: https://camelot-py.readthedocs.io/en/master/_static/ ...
- Office在线预览及PDF在线预览的实现方式大集合
一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免 ...
- Office在线预览及PDF在线预览的实现方式
原文链接:http://www.officeweb365.com/officetoview.html 一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office ...
- java原装代码完成pdf在线预览和pdf打印及下载
这是我在工作中,遇到这样需求,完成需求后,总结的成果,就当做是工作笔记,以免日后忘记,当然,能帮助到别人是最好的啦! 下面进入正题: 前提准备: 1. 项目中至少需要引入的jar包,注意版本: a) ...
- 借助flexpaper实现word在线预览和打印
为了实现word能够在web上尽量以原始的排版样式展现出来,选择基于activex控件的方式太过于依赖某种浏览器,并且存在可能需要花费金钱购买相应的控件产品:于是借助flexpaper这种flash展 ...
- .net mvc使用FlexPaper插件实现在线预览PDF,EXCEL,WORD的方法
FlexPaper插件可以实现在浏览器中在线预览pdf,word,excel等. 在网上看到很多关于这个插件实现预览的技术,但是很难做到word和excel在线预览. pdf很好实现. 首先下载相关的 ...
- word文档在线预览解决方案
花了一整天在网上翻关于 “word文档在线预览解决方案” 相关的资料,感觉实现难度比较大还是用PDF来解决好了.. 下面列一下比较好的参考资料吧 参考资料 前端实现在线预览pdf.word.xls.p ...
- MVC 附件在线预览
原因:应客户需求,在系统中浏览附件内容,需要先下载到本地然后打开,对使用造成了不便,要求可以不需下载直接在浏览器中打开减少操作步骤. 领导给了3天时间,最后查找方法,写测试项目,往正式项目添加,测试, ...
随机推荐
- mysql创建用户、赋予指定权限命令
1.远程登录mysql mysql -h ip -u root -p 密码 2.创建用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码 ...
- Servlet接口的实现类,路径配置映射,ServletConfig对象,ServletContext对象及web工程中文件的读取
一,Servlet接口实现类:sun公司为Servlet接口定义了两个默认的实现类,分别为:GenericServlet和HttpServlet. HttpServlet:指能够处理HTTP请求的se ...
- WPF 使用 Pandoc 把 Markdown 转 Docx
原文:WPF 使用 Pandoc 把 Markdown 转 Docx 本文告诉大家如何通过 WPF 使用 Pandoc 把 Markdown 转 Docx 文件 在之前有文章使用 Pandoc 把 M ...
- Cordova 返回键切换后台
这里需要用到 cordova-plugin-backbutton 这个插件 1.安装插件,命令窗口输入(当前目录是你项目所在的目录) cordova plugin add cordova-plugin ...
- TCP/IP之封装,分用,server模型
ios讨论群1群:135718460 1.封装 当应用程序用TCP传送数据时,数据被送入到协议栈中,然后通过每一层直到被当做一串比特流送入网络. 2.分用 当目的主机收到以太网数据帧时,数据就開始从协 ...
- Spring 的 ApplicationEvent and ApplicationListener
什么是ApplicationContext? 它是Spring的核心,Context我们通常解释为上下文环境,可是理解成容器会更好些. ApplicationContext则是应用的容器. Sprin ...
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...
- Android程序猿必掌握的sqlite数据库连表查询
SQL查询的基本原理:两种情况介绍. 第一. 单表查询:依据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后依据SELECT的选择列选择对应的列进行返回终于结果. 第二 ...
- OpenGL+VS2012编译环境配置
OpenGL库主体分为三部分,分别是 gl(OpenGL核心库) glu(Utility Library,OpenGL实用库) glut(Utility Toolkit,OpenGL实用工具库) gl ...
- 零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术
原文:零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术 本章所介绍的是便利且快速的内建工具Clone ? 本章所介绍的是便利且 ...