本文实例讲述了PHP实现仿百度文库,豆丁在线文档效果。分享给大家供大家参考,具体如下: 由于项目要实现类似百度文库的功能,又是我一个人做的项目,所以就想到找免费的现成的来使用。在网上找到的都是一样的。如下: Flash Paper支持Office文档(.doc,.xls,
本文实例讲述了PHP实现仿百度文库,豆丁在线文档效果。分享给大家供大家参考,具体如下:
由于项目要实现类似百度文库的功能,又是我一个人做的项目,所以就想到找免费的现成的来使用。在网上找到的都是一样的。如下:
Flash Paper支持Office文档(.doc,.xls,.ppt)直接转换为PDF或SWF,速度很快,效果较好。可惜,Flash Paper V2.2后没有再更新了。安装Flash Paper后,可以直接使用命令调用FlashPrinter.exe,实现批量转换。
例如:C:\FlashPaper2.2\FlashPrinter.exe C:\Flex技术简介.ppt -o C:\Flex技术简介.swf
下载个FlashPaper,安装好之后,控制面板的打印机那里会出现一个虚拟的打印机,这个就说明安装成功了,win7下我试过32位的和64位的都安装不了。
在命令行试一下上面的命令,路径根据自身调整。执行后,成功就说明可以用了.
接下来就是php使用了,php使用 exec,或者system等来执行cmd命令,如:
复制代码 代码如下:
exec("C:\FlashPaper2.2\FlashPrinter.exe C:\Flex技术简介.ppt -o C:\Flex技术简介.swf");
执行这个之前要配置以下php.ini 把安全模式设为off(safe_mode = Off),或者开着也行,在safe_mode_exec_dir =设置允许允许exe的路径,设为flashpaer的路径。
测试一下,执行成功!
这 些都是可以在网上查到的,由于我用的是office2007所以word后缀.docx,转换的时候就失败了,一直在网上也找不到原因,无意中,我把要转 换的 a.docx 改名为 a.doc 转换成功了,这样我也想不明白,因为直接在cmd 下,转换.docx 是可以的。同理要转2007的ppt,excel 都是把后缀去掉那个x就可以转换了。
补充:
最近,有个项目要用到类似DOCIN的文档转换和阅读的功能,于是就开始找相关的资料,最后总结出2种解决办法,以下就来探讨下两种方法的各自实现。
第一种:通过FLASH PAPER来转换DOC文档直接生成SWF,这个很简单,下载一个FLASH PAPER 安装就可以调用,我们在程序里是用CMD调用的,调用的命令是:C:\Program Files\Macromedia\FlashPaper 2\FlashPrinter.exe xxx.ppt -o xxx.swf,不过经我测试,这个东西有很大的缺陷,不能并发几个一起用,也就是说只能同时转换一个文档,我不知道有没有其他方法能够解决这个问题,如果你有解决的办法,也请告诉我,FLASH PAPER的转换原理是这样的:建立一个虚拟打印机,打开文档,虚拟打印,取得打印的内容直接生成SWF,所以转换一个文档就需要一个虚拟打印机的运行~~~中间会弹出打印和打开文档的窗口。这个方案不符合我的要求,直接PASS。
第二种:利用开源的软件OPENOFFICE把文档转换成PDF,在通过SWFTOOLS把PDF转换成SWF,其中要用到的东西比较多,下面一一道来。这个方案可以在微软的系统下运行,也可以在LINUX下运行,我是CENTOS5.5字符界面下跑的,下面是过程:
首先安装装CENTOS5.5系统,安装过程就不再罗嗦了,我是最简安装的
装好系统后,就是把需要的软件包都下载下来:我们用到的软件包有
# wget http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/C DS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/ jdk-6u20-linux-i586.bin?BundledLineItemUUID=fdeJ_hC vMVcAAAEpabADyW5K&OrderID=JRuJ_hCvMlQAAAEpWrADyW5K& ProductID=guBIBe.oc_wAAAEnaDJHqPYe&FileName=/jdk-6u 20-linux-i586.bin # wget http://download.services.openoffice.org/files/loca lized/zh-cn/3.2.0/OOo_3.2.0_LinuxIntel_install_zh-C N.tar.gz # wget http://www.swftools.org/swftools-0.9.1.tar.gz wget http://apache.etoak.com/tomcat/tomcat-6/v6.0.26/bi n/apache-tomcat-6.0.26.tar.gz
还有一个openoffice的插件,我们所有的应用都基于它:jodconverter
下载地址是:http://sourceforge.net/projects/jodconverter/files/
好了,软件包准备好,下面就开工了⌒_⌒
先装JDK & tomcat,安装过程就不罗嗦了,不会的google下
接下来,安装openoffice,
# tar zxvf OOo_3.2.0_LinuxIntel_install_zh-CN.tar.gz #cd OOO320_m12_native_packed-1_zh-CN.9483/RPMS #rpm -ivh –force –nodeps *.rpm
就这样OPENOFFICE就安装好了,如果你的系统没有中文字体,就把中文字体安装上,否则转出来的PDF会乱码
装好openoffice后,接着安装swftools,swftools安装也比较简单,
# tar zxvf swftools-0.9.1.tar.gz #cd swftools-0.9.1 # ./configure –prefix=/usr/local/swftools/ # make && make install
到此,所有该安装的软件都已经安装好了,由于我现在是利用
下面开始把所需服务都启动起来,
先把OPENOFFICE启动起来,我们是当作服务启动的,启动命令如下
复制代码 代码如下:
#/opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
接着把TOMCAT 启动,把jodconverter做为WEB APP转换服务的,所以先把下灾下来的jodconverter-webapp-2.2.2.zip解压,把jodconverter-webapp- 2.2.2.war放到TOMCAT根目录,运行TOMCAT后,会自动生成APP文件夹,为了书写简单,我们改名为converter,假设你的服务器 IP为:192.168.1.123www.linghan56.cn,TOMCAT端口为8080,浏览器输入:http://192.168.1.123:8080/converter/,看看转换程序运行正常不,启动正常的话,我们的工作就完成一大半了。 主要的工作已经做完,现在剩下的就是怎么应用了,我是利用PHP调用转换的程序的,用户通过PHP上传文件,
判断文件类型,如果是JPG,GIF,PNG,PDF等利用SWFTOOLS可以直接转换的文件,就直接转换,否则,通过http://192.168.1.123:8080/converter/把文件转换为PDF,再利用SWFTOOLS把PDF转为SWF,值得注意的是,PDF转SWF时候,注意把版本转化为9,如果转为9以下的版本的话,AS3操作起来会很麻烦,SWFTOOLS转换的命令如下:
复制代码 代码如下:
#/usr/local/swftools/bin/pdf2swf -T 9 XXX.pdf XXX.swf
其中-T是版本信息,具体可以通过#/usr/local/swftools/bin/pdf2swf -help查询
现在整个过程完成3/4了,剩下的就是用AS3写一个东西出来,操作PDF生成的SWF,生成的SWF文件格式是这样的,每一页的文档会生成一个movieclip,具体的代码我就不贴不出来了,这个相信也不难。
本来想放一个在线的DEMO的,不过我这个VPS配置太低,512M的内存,还不能自己添加swap,跑了PHP+MYSQL,就跑不动这个了,这个应用要求的内存和CPU还是蛮高的。
比较两种方法,第一种转换出来的东西应该更好,而且支持的格式更多,理论上讲,只要能打印的东西,都能转换,只是不能并发,所以意义不大,如果能利用这个原理,自己写一个转换服务器,解决并发问题,那第一种应该是最合适的。
第二种只能转换openoffice支持的格式,对服务器的要求非常的高。不知道DOCIN和BAIDU文档是怎么样的解决方案
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Atom editor mac version download
The most popular open source editor

Dreamweaver Mac version
Visual web development tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.
