OpenOffice文件转换的使用(php)

             今天谈一谈关于php使用OpenOffice转换文件格式的经历,网上搜索了很多关于php对此软件的使用,但是大部分都是一个copy一个地出现,整个搜索下来都TM是一个人写的,而且都没卵用。所以今天简单介绍一个解决方案。

             首先肯定先下载OpenOffice,OpenOffice这个软件能将office文件转换为pdf格式,以及许多文件格式的转换,大家自己查询详细功能,今天就拿office文件转换为pdf文件的例子讲一讲就行了,做法都是一样的。

             基本思路是这样的,我使用的是通过java jar包,输入命令行的方式进行文件的格式转换。这样做有一个优点,1.简单明了,容易操作,不用考虑过多复杂而且找不到的API函数之类的东西,直接达到转换目的。话说回来,这也有一个缺点,就是文件命名不能有空格,一旦有空格,命令行就失去效果了。例如  ,假定一个命令 copy    21.txt  ./test  这个拷贝21.txt文件到  当前的test目录下面,但是如果你的文件命名有空格, copy 2  1.txt ./test  虽然文件命名肯定是能通过的,但是你执行这条指令会报错,找不到指定文件。系统以为你要拷贝的文件叫 2 ,后面的1.txt可能视为参数或者非法的参数,达不到你要拷贝2  1.txt文件的目的,以至于报错就是找不到文件,没有2这个文件。

               java jar包 : 点击打开链接

               demo演示:点击打开链接

 

                   1.上官网, http://www.openoffice.org。下载openoffice


                  

                    2.点击  Download

          

             3. 点击下载对应操作系统版本就行了。安装和普通软件一样,这个就不一一叙述了。

         

                 4.设置权限

                  cmd 运行Dcomcnfg.exe->组件服务->计算机->我的电脑->DCOM配置->OpenOffice Service Manager..

       

              5.   鼠标右击->属性,选择安全 ,和标识这2个配置。标识配置=>交互式用户,安全=>自定义,全部添加Everyone权限。

    

                     点击编辑->添加Everyone权限就行了。

    

                   6. 启动OpenOffice服务命令: 打开cmd(建议用管理员权限运行,保证服务正常开启)。 先进入OpenOffice安装目录,例如我安装的: cd                                        C:\Program Files (x86)\OpenOffice 4\program

                               启动服务:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard 

 

                                                                      查看进程,服务是否正常开启:


               

                                                             下面开始演示转换过程:

                                            将java jar包解压,和 tran.php 处于同一级目录。以及一个测试的 test.doc文件

              

                                             主要代码如下: 

                   

 <span style="font-family:Microsoft YaHei;">function tranOffice($input_file,$type="pdf"){
  	
  	 $input_file=iconv("utf-8", "gb2312", $input_file);
  	   
  	 $out_file=substr($input_file, 0,strrpos($input_file, "."));
  	 if($type!=="pdf")
  	 	
  	 $out_file=$out_file.'.html';
  	 else 
  	 	$out_file=$out_file.'.pdf';
 	  $file="java -jar jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar "."./"."$input_file"." ./"."$out_file";	
 	  $status=exec($file);
       return $status;
     }</span>

                                                核心转换java命令行java -jar jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar 源文件  目标文件  ,即可。

                                                              首先先打开doc文件看看:

                         

                                                                             运行 tran.php:

                            


                           

                                                             多出了test.pdf文件,我们打开看看:

                            

                                                          完好无损,完美转换!

                                              缺点介绍,前面说了文件命名不能有空格。我们来试试,test.doc变为t  est.doc试一下。

                             

                                              浏览器访问tran.php,查看目录没有产生pdf文件,转换失败。

                                      本次经验杂谈到此结束,不懂的地方再仔细看看流程,下载我上传的demo案例,朋友们自己看看吧。

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页