您好,登錄后才能下訂單哦!
如何實現php在線演示功能,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
php在線演示功能的實現方法:1、將其他格式的文檔通過OpenOffice轉換成PDF格式文檔;2、通過swftools將PDF格式文檔轉換為swf格式文檔;3、通過flexpaper顯示swf格式的文檔,從而實現預覽多種格式的文檔即可。
本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦
怎么實現php在線演示功能?
Windows下實現php在線預覽功能
最近用到文檔在線預覽功能,之前沒接觸過,一切從零開始,整了一段時間終于實現,現在把方法分享給大家!
一、主要思路
先將其他格式的文檔(office文檔、txt、圖片等等)通過OpenOffice轉換成PDF格式文檔,然后通過swftools(http://www.swftools.org/)將PDF格式文檔轉換為swf格式文檔,最后通過flexpaper顯示swf格式的文檔,從而實現預覽多種格式的文檔。
使用到的工具自己從網上下載,很好找的。
二、實現過程
1.其他文檔轉為PDF
用命令啟動OpenOffice:
運行->cmd,輸入下面的命令
cd /d E:/openoffice/program & soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
或者在cmd中進入program目錄,然后輸入
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
php實現代碼:
set_time_limit(0); 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); } $doc_file = 'D:/wamp/www/onlineread/uploads/docfile.doc'; $output_file = 'D:/wamp/www/onlineread/uploads/pdffile.pdf'; $doc_file = "file:///" . $doc_file; $output_file = "file:///" . $output_file; word2pdf($doc_file,$output_file);
2.PDF轉換為swf并顯示
php實現代碼:
<div style="width:100%;height:800px;display:block;margin-left: auto;margin-right: auto; margin-top: 20px;"> <a id="viewerPlaceHolder" style="width:100%;height:800px;display:block;"></a> <script type="text/javascript"> var path="/<?=$convert?>";//調用php的變量,如果不能實現可考慮下一句的寫法 //var path="/<?php echo $convert?>"; var fp = new FlexPaperViewer( '__PUBLIC__/FlexPaper/FlexPaperFlash/FlexPaperViewer', 'viewerPlaceHolder', { config : {//配置參數,可自行修改成自己想要的 SwfFile : escape(path), Scale : 1, ZoomTransition : 'easeOut', ZoomTime : 0.5, ZoomInterval : 0.2, FitPageOnLoad : false, FitWidthOnLoad : false, PrintEnabled : true, FullScreenAsMaxWindow : false, ProgressiveLoading : false, MinZoomSize : 0.2, MaxZoomSize : 5, SearchMatchAll : false, InitViewMode : 'Portrait', ViewModeToolsVisible : true, ZoomToolsVisible : true, NavToolsVisible : true, CursorToolsVisible : true, SearchToolsVisible : true, localeChain: 'en_US' }}); </script> </div>
3.運行前的準備
需要先進行如下的設置,否則運行過程中可能會出錯!
控制面板-管理工具-組件服務-計算機-我的電腦-DOCM配置,找到OpenOffice Service Manager(Ver 1.0)右鍵屬性,按下圖所示進行配置:
如下圖所示找到OpenOffice Service Manager(Ver 1.0):
在彈出框中選擇‘安全’,分別編輯‘啟動和激活權限’和‘訪問權限’:
在‘啟動和激活權限’彈出框中點擊添加,輸入Everyone:
設置Everyone的權限:
在‘訪問權限’的彈出框中點擊添加,輸入Everyone:
設置Everyone權限:
在屬性對話框中選擇‘標識’,選擇‘交互式用戶’:
如果遇到COM類實例化失敗的問題,打開php配置文件,去掉com.allow_dcom=true前面的分號,并添加extension=php_com_dotnet.dll,因為php5.4以后就不內嵌com了。
設置好后不要忘記重啟服務哦!
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。