Home  >  Article  >  Backend Development  >  How to implement php online demonstration function

How to implement php online demonstration function

藏色散人
藏色散人Original
2021-09-25 10:13:192428browse

How to implement the online demonstration function of php: 1. Convert documents in other formats into PDF format documents through OpenOffice; 2. Convert PDF format documents into swf format documents through swftools; 3. Display swf format through flexpaper documents, so that you can preview documents in multiple formats.

How to implement php online demonstration function

The operating environment of this article: Windows7 system, PHP7.1 version, DELL G3 computer

How to implement the PHP online demonstration function?

Implementing php online preview function under Windows

I have recently used the document online preview function. I have never been exposed to it before. Everything started from scratch and took a while. Finally realized it, now I’m sharing the method with everyone!

1. Main idea

First convert documents in other formats (office documents, txt, pictures, etc.) into PDF format documents through OpenOffice, and then use swftools (http://www. swftools.org/) converts PDF format documents into swf format documents, and finally displays the swf format documents through flexpaper, thereby enabling preview of documents in multiple formats.

The tools used are downloaded from the Internet and are easy to find.

2. Implementation process

1. Convert other documents to PDF

Use the command to start OpenOffice:

Run->cmd, enter the following command

cd /d E:/openoffice/program & soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

Or enter the program directory in cmd and enter

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

PHP implementation code:

 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. Convert PDF to swf and display

PHP Implementation code:

<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. Preparation before running

The following settings need to be made first, otherwise errors may occur during operation!

Control Panel-Administrative Tools-Component Services-Computer-My Computer-DOCM Configuration, find the right-click properties of OpenOffice Service Manager (Ver 1.0), and configure it as shown below:

As follows: Find OpenOffice Service Manager (Ver 1.0) as shown in the figure:

Select 'Security' in the pop-up box and edit 'Startup and Activation Permissions' and 'Access Permissions' respectively:

##                                               Click Add in the 'Startup and Activation Permissions' pop-up box, enter Everyone:

Set the permissions for Everyone :

##                                     Click Add in the pop-up box, enter Everyone:

        

          Set Everyone permissions:

##                                             ciousgonwards in >> Select 'Interactive User':

 

If you encounter the problem of COM class instantiation failure, open the php configuration file, remove the semicolon in front of com.allow_dcom=true, and add extension=php_com_dotnet.dll, because com will not be embedded after php5.4.

Don’t forget to restart the service after setting it up!

Recommended study: "

PHP Video Tutorial

"

The above is the detailed content of How to implement php online demonstration function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn