程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP實現仿百度文庫,豆丁在線文檔效果(word,excel,ppt轉flash),

PHP實現仿百度文庫,豆丁在線文檔效果(word,excel,ppt轉flash),

編輯:關於PHP編程

PHP實現仿百度文庫,豆丁在線文檔效果(word,excel,ppt轉flash),


本文實例講述了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檢查頁面是否被百度收錄
  • php獲取網站百度快照日期的方法
  • php獲取百度收錄、百度熱詞及百度快照的方法
  • PHP計算百度地圖兩個GPS坐標之間距離的方法
  • php生成百度sitemap站點地圖類函數實例
  • ThinkPHP調用百度翻譯類實現在線翻譯
  • php使用百度ping服務代碼實例
  • PHP創建PowerPoint2007文檔的方法
  • 使用PHP導出Word文檔的原理和實例
  • 自定義php類(查找/修改)xml文檔
  • PHP生成Flash動畫的實現代碼
  • flash+php+mysql打造簡單留言本教程
  • 用PHP動態創建Flash動畫

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved