php 在線預覽word


一般類似oa或者crm等管理系統可能都會遇到需要再線查看word文檔的功能,類似百度文庫。

記得去年小組中的一個成員負責的項目就需要這個的功能,后面說是實現比較困難,就將就着用chm格式替代了。今天看到網上一遍文章《LINUX下面PHP文件轉換》,介紹怎么樣在linux下使用Openoffice 3 , Pdf2Swf tool , Jodconverter , FlexPaper,實現文檔在線查看。

自己再ubuntu下進行的嘗試安裝,步驟如下:

因為ubuntu版本為10.0.4,openoffice已經默認安裝。如果沒有安裝openoffice的話自行谷歌安裝。
第一步:安裝jodconverter,安裝之后可以實現doc文檔轉成pdf。

文件下載地址為http://www.artofsolving.com/opensource/jodconverter
下載了之后直接解壓,解壓到/opt目錄下/opt/jodconverter-2.2.2/,使用到的文件是安裝包內的lib/jodconverter-cli-2.2.2.jar。
測試是否可以使用

  1. 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,命令如下:

  1. sudo apt_get openjdk-6-jre-headless

安裝之后再運行上面doc轉pdf的命名,會提示openoffice進程未啟動,

因為JODConverter是通過OpenOffice來做轉換的 ,所以使用前需要先安裝OpenOffice, 並且將OpenOffice的Service啟動, 才可以使用. 啟動命令

  1. /usr/lib/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

到此運行上面的doc轉pdf的命令已經可以成功。

第二步:安裝swftools,安裝之后可以實現pdf文件轉成swf

  1. wget http://www.swftools.org/swftools-0.9.1.tar.gz
  2. tar xzf swftools-0.9.1.tar.gz
  3. cd swftools-0.9.1
  4. ./configure
  5. make
  6. make install

測試是否可以使用

  1. pdf2swf -o /home/php/1.swf -T -z -t -f /home/php/1.pdf -s flashversion=9

第三步:用FlexPaper實現在線預覽,里面有詳細的demo。

第四步:使用php測試文檔轉換命令:
文檔轉pdf

  1. <?php
  2. $doc = './docs/test.txt';
  3. $formatName = './pdf/test.pdf';
  4. $command = 'java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar '.$doc.' '.$formatName;
  5.  
  6. exec($command);
  7. echo 'ok';

pdf轉swf

  1. <?php
  2. $pdf = './pdf/test.pdf';
  3. $swf = './swf/test.swf';
  4.  
  5. $command = '/usr/local/wenku/swftools-0.9.1/src/pdf2swf -o '.$swf.' -T -z -t -f '.$pdf.' -s flashversion=9';
  6.  
  7. exec($command);
  8. 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: 輸出文件的路徑,這里我輸出到D:盤下

運行的結果如圖所示:

2.使用FlexPaper插件顯示瀏覽swf文件。這里下載使用的版本是1.5.8 Flash Version (release notes)。軟件包內就已經有html版本的demo,稍微改動下句可以實現了。

代碼如下:

  1. <script src="js/flexpaper_flash.js" type="text/javascript"></script>
  2. <a id="viewerPlaceHolder" style="width:680px;height:480px;display:block;"/></a>
  3. <script type="text/javascript">
  4. var fp = new FlexPaperViewer(
  5. 'FlexPaperViewer',
  6. 'viewerPlaceHolder', { config : {
  7. SwfFile : escape('c.swf'),
  8. Scale : 0.1,
  9. ZoomTransition : 'easeOut',
  10. ZoomTime : 0.5,
  11. ZoomInterval : 0.2,
  12. FitPageOnLoad : true,
  13. FitWidthOnLoad : false,
  14. FullScreenAsMaxWindow : false,
  15. ProgressiveLoading : false,
  16. MinZoomSize : 0.2,
  17. MaxZoomSize : 5,
  18. SearchMatchAll : false,
  19. InitViewMode : 'Portrait',
  20. PrintPaperAsBitmap : false,
  21.  
  22. ViewModeToolsVisible : true,
  23. ZoomToolsVisible : true,
  24. NavToolsVisible : true,
  25. CursorToolsVisible : true,
  26. SearchToolsVisible : true,
  27.  
  28. localeChain: 'en_US'
  29. }})
  30. </script>

到此就結束了,查看效果如圖實現:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM