歡迎加入php架構師之旅 群:410028331(招納賢人-大師中)方便技術的交流
一般類似oa或者crm等管理系統可能都會遇到需要再線查看word文檔的功能,類似百度文庫。
記得去年小組中的一個成員負責的項目就需要這個的功能,後面說是實現比較困難,就將就著用chm格式替代了。今天看到網上一遍文章《LINUX下面PHP檔案轉換》,介紹怎麼樣在linux下使用Openoffice 3 , Pdf2Swf tool , Jodconverter , FlexPaper,實現文檔線上查看。
自己再ubuntu下進行的嘗試安裝,步驟如下:
因為ubuntu版本為10.0.4,openoffice已經預設安裝。如果沒有安裝openoffice的話自行Google安裝。
第一步:安裝jodconverter,安裝之後可以實現doc文檔轉成pdf。
檔案下載地址為http://www.artofsolving.com/opensource/jodconverter
下載了之後直接解壓,解壓到/opt目錄下/opt/jodconverter-2.2.2/,使用到的檔案是安裝包內的lib/jodconverter-cli-2.2.2.jar。
測試是否可以使用
java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /home/php/1.doc /home/php/1.pdf
這裡提示缺少java軟體包,並會提示幾個安裝包供。選擇我安裝openjdk-6-jre-headless,命令如下:
sudo apt_get openjdk-6-jre-headless
安裝之後再運行上面doc轉pdf的命名,會提示openoffice進程未啟動,
因為JODConverter是通過OpenOffice來做轉換的 ,所以使用前需要先安裝OpenOffice, 並且將OpenOffice的Service啟動, 才可以使用. 啟動命令
/usr/lib/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
到此運行上面的doc轉pdf的命令已經可以成功。
第二步:安裝swftools,安裝之後可以實現pdf檔案轉成swf
wget http://www.swftools.org/swftools-0.9.1.tar.gz tar xzf swftools-0.9.1.tar.gz cd swftools-0.9.1 ./configure make make install
測試是否可以使用
pdf2swf -o /home/php/1.swf -T -z -t -f /home/php/1.pdf -s flashversion=9
第三步:用FlexPaper實現線上預覽,裡面有詳細的demo。
第四步:使用php測試文檔轉換命令:
文檔轉pdf
<?php $doc = './docs/test.txt'; $formatName = './pdf/test.pdf'; $command = 'java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar '.$doc.' '.$formatName; exec($command); echo 'ok';
pdf轉swf
<?php $pdf = './pdf/test.pdf'; $swf = './swf/test.swf'; $command = '/usr/local/wenku/swftools-0.9.1/src/pdf2swf -o '.$swf.' -T -z -t -f '.$pdf.' -s flashversion=9'; exec($command); echo 'ok';
php指令碼去運行上面的命令可能存在許可權的問題無法執行
其中我測試使用的php指令碼調用pdf2swf進行轉換檔,產生不了。這樣只需配置apache的使用者權限即可,確保配置的使用者有許可權運行pdf2swf命令
預設安裝的php環境ubuntu下設定檔是/etc/apache2/apache2.conf修改這兩行,
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_USER}
配置完之後,重啟apache。
/etc/init.d/apache2 restart
到此linux下的安裝配置就結束了。
window下測試
下載window下使用的Pdf2Swf tool和FlexPaper,手動的將pdf檔案轉swf後進行線上查看的功能。
步驟整理如下:
1.安裝Pdf2Swf tool之後,進行將pdf轉swf。cmd命令列:
pdf2swf.exe -t D:\wamp5.3\www\test\pdf\c.pdf -s flashversion=9 -o D:\wamp5.3\www\test\swf\c.swf
-t: 源檔案路徑,即待轉換的pdf檔案路徑。
-s: 設定參數,這裡我們設定為 flashversion=9 ,即可以轉換為9 的版本啦。
-o: 輸出檔案的路徑