将word转化为swf 如同百度文库般阅读实现思路及代码


Posted in PHP onAugust 09, 2013
<SPAN style="FONT-FAMILY: Arial, Helvetica, sans-serif">实现如同百度文库那样类似功能需要进行一系列转化,一般流程想将word转化为pdf格式,再将pdf格式转化为swf格式。在网页上显示其实都是swf格式内容。</SPAN>

首先将word转化为swf,需要调用com组件,可以通过office 或者wps进行转化,但我尝试都没有成功,最后通过OpenOffice 4.0.0 进行转化才成功,OpenOffice 4.0.0支持windows 和linux操作系统,故需要先下载openOffice,官网上应该有。将word转化为pdf,好像只是支持英文的标题的文档,不支持汉文名字文档,可以先将文件重新命名为英文,转化之后再将文件变为汉文即可,可能还需要开始openoffice 服务,上图
将word转化为swf 如同百度文库般阅读实现思路及代码 
验证服务是否开启,上图
将word转化为swf 如同百度文库般阅读实现思路及代码 
代码如下:
<PRE class=php name="code"><?php 
class RunTime//页面执行时间类 
{ 
private $starttime;//页面开始执行时间 
private $stoptime;//页面结束执行时间 
private $spendtime;//页面执行花费时间 
function getmicrotime()//获取返回当前微秒数的浮点数 
{ 
list($usec,$sec)=explode(" ",microtime()); 
return ((float)$usec + (float)$sec); 
} 
function start()//页面开始执行函数,返回开始页面执行的时间 
{ 
$this->starttime=$this->getmicrotime(); 
} 
function end()//显示页面执行的时间 
{ 
$this->stoptime=$this->getmicrotime(); 
$this->spendtime=$this->stoptime-$this->starttime; 
//return round($this->spendtime,10); 
} 
function display() 
{ 
//$this->end(); 
echo "<p>运行时间:".round($this->spendtime,10)."秒</p>"; 
} 
} 
/*调用方法 */ 
$timer=new Runtime(); 
$timer->start(); 
function MakePropertyValue($name,$value,$osm){ 
$oStruct = $osm->Bridge_GetStruct 
("com.sun.star.beans.PropertyValue"); 
$oStruct->Name = $name; 
$oStruct->Value = $value; 
return $oStruct; 
} 
function word2pdf($doc_url, $output_url){ 
$osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.\n"); 
$args = array(MakePropertyValue("Hidden",true,$osm)); 
$oDesktop = $osm->createInstance("com.sun.star.frame.Desktop"); 
$oWriterDoc = $oDesktop->loadComponentFromURL 
($doc_url,"_blank", 0, $args); 
$export_args = array(MakePropertyValue 
("FilterName","writer_pdf_Export",$osm)); 
$oWriterDoc->storeToURL($output_url,$export_args); 
$oWriterDoc->close(true); 
} 
$output_dir = "C:/"; 
$doc_file = "C:/t.doc"; 
$pdf_file = "9.pdf"; 
$output_file = $output_dir . $pdf_file; 
$doc_file = "file:///" . $doc_file; 
$output_file = "file:///" . $output_file; 
word2pdf($doc_file,$output_file); 

$timer->end(); 
$timer->display(); 
?></PRE><BR> 
<P></P> 
<PRE></PRE> 
<P></P> 
<P><BR> 
</P> 
花费时间进行分析: 
<P>将一个大小为1.48M的word文档转化为pdf需要<SPAN style="FONT-FAMILY: Simsun; FONT-SIZE: 14px">运行时间:1.3652579784秒</SPAN> 自己电脑是这个时间,自己测试</P> 
<P><BR> 
</P> 
<P>其次将pdf转化为swf,需要运用另外一个软件,swftools  通过代码调用cmd命令,直接上代码</P> 
<P><PRE class=php name="code"><?php 
class RunTime//页面执行时间类 
{ 
private $starttime;//页面开始执行时间 
private $stoptime;//页面结束执行时间 
private $spendtime;//页面执行花费时间 
function getmicrotime()//获取返回当前微秒数的浮点数 
{ 
list($usec,$sec)=explode(" ",microtime()); 
return ((float)$usec + (float)$sec); 
} 
function start()//页面开始执行函数,返回开始页面执行的时间 
{ 
$this->starttime=$this->getmicrotime(); 
} 
function end()//显示页面执行的时间 
{ 
$this->stoptime=$this->getmicrotime(); 
$this->spendtime=$this->stoptime-$this->starttime; 
//return round($this->spendtime,10); 
} 
function display() 
{ 
//$this->end(); 
echo "<p>运行时间:".round($this->spendtime,10)."秒</p>"; 
} 
} 
/*调用方法 */ 
$timer=new Runtime(); 
$timer->start(); 

//调用系统软件 
$command = "\"C:\Program Files\SWFTools\pdf2swf.exe\" -t C:\8.pdf -s flashversion=9 -o C:\m.swf"; 
echo $command; 
exec($command); 
echo 'ok'; 

$timer->end(); 
$timer->display(); 
?></PRE><BR> 
将刚才转化而来的pdf转化为swf文件需要用<SPAN style="FONT-FAMILY: Simsun; FONT-SIZE: 14px">运行时间:1.3119211197秒时间</SPAN><P></P> 
<P><SPAN style="FONT-FAMILY: Simsun; FONT-SIZE: 14px">最后则是将swf文件显示在网页中,这一步需要引入多个js文件和其他文件,代码就不写了,直接下载,在我的上传资料中</SPAN></P> 
<P><BR> 
</P> 
<P><BR> 
<BR> 
</P> 
<P><BR> 
</P>
PHP 相关文章推荐
php GD绘制24小时柱状图
Jun 28 PHP
FleaPHP的安全设置方法
Sep 15 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
Smarty保留变量用法分析
May 23 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
php输出控制函数和输出函数生成静态页面
Jun 27 PHP
PHP 实现重载
Mar 09 PHP
php var_export与var_dump 输出的不同
Aug 09 #PHP
页面乱码问题的根源及其分析
Aug 09 #PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 #PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 #PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 #PHP
php接口与接口引用的深入解析
Aug 09 #PHP
解析数组非数字键名引号的必要性
Aug 09 #PHP
You might like
奇怪的PHP引用效率问题分析
2012/03/23 PHP
php不用正则验证真假身份证
2013/11/06 PHP
php计算税后工资的方法
2015/07/28 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
2019/12/04 PHP
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
浅谈Python爬取网页的编码处理
2016/11/04 Python
Python实现自动发送邮件功能
2021/03/02 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
Django中的cookie和session
2019/08/27 Python
python安装本地whl的实例步骤
2019/10/12 Python
python正则表达式实例代码
2020/03/03 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
资源环境与城市管理专业推荐信
2013/11/30 职场文书
2013年研究生毕业感言
2014/02/06 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
民事赔偿协议书
2014/11/02 职场文书
邹越演讲观后感
2015/06/15 职场文书
青涩记忆观后感
2015/06/18 职场文书
班主任培训研修日志
2015/11/13 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
webpack的移动端适配方案小结
2021/07/25 Javascript
redis 存储对象的方法对比分析
2021/08/02 Redis