首頁 >後端開發 >PHP問題 >怎麼實現php線上示範功能

怎麼實現php線上示範功能

藏色散人
藏色散人原創
2021-09-25 10:13:192451瀏覽

php線上簡報功能的實作方法:1、將其他格式的文件透過OpenOffice轉換成PDF格式文件;2、透過swftools將PDF格式文件轉換為swf格式文件;3、透過flexpaper顯示swf格式的文檔,從而實現預覽多種格式的文檔即可。

怎麼實現php線上示範功能

本文操作環境: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);
顯示為#freee 並顯示為#」#wheee.實作程式碼:

<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(
             &#39;__PUBLIC__/FlexPaper/FlexPaperFlash/FlexPaperViewer&#39;,
             &#39;viewerPlaceHolder&#39;, { config : {//配置参数,可自行修改成自己想要的
               SwfFile : escape(path),
               Scale : 1,
               ZoomTransition : &#39;easeOut&#39;,
               ZoomTime : 0.5,
               ZoomInterval : 0.2,
               FitPageOnLoad : false,
               FitWidthOnLoad : false,
               PrintEnabled : true,
               FullScreenAsMaxWindow : false,
               ProgressiveLoading : false,
               MinZoomSize : 0.2,
               MaxZoomSize : 5,
               SearchMatchAll : false,
               InitViewMode : &#39;Portrait&#39;,
               ViewModeToolsVisible : true,
               ZoomToolsVisible : true,
               NavToolsVisible : true,
               CursorToolsVisible : true,
               SearchToolsVisible : true,
               localeChain: &#39;en_US&#39;
           }});
         </script>
       </div>

  3.運作前的準備

    需要先進行以下的設置,否則運作過程中可能會出錯!

    控制面板-管理工具-元件服務-電腦-我的電腦-DOCM配置,找到OpenOffice Service Manager(Ver 1.0)右鍵屬性,按下圖所示進行設定:

                     圖中所示找到OpenOffice Service Manager(Ver 1.0):

 

          權限        權限         權限方中選擇'

                 # #在'啟動和激活              設定Everyone的權限:

                  在'訪問權限'的彈出框中點選新增,輸入     在'訪問權限'的彈出框中點選新增,輸入     在'訪問權限'的彈出框中點選新增,輸入。      

                〠         Every

                              

    如果遇到COM類別實例化失敗的問題,打開php設定文件,去掉com.allow_dcom=true前面的分號,並且加入extension=php_com_dotnet.dll,因為php5.4以後就不內嵌com了。

   設定好後不要忘記重啟服務哦!

    推薦學習:《

PHP影片教學

以上是怎麼實現php線上示範功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn