• 技术文章 >后端开发 >php教程

    用php把word格式文件转换成pdf文件

    小云云小云云2017-11-11 09:31:06原创6840
    小编是非专业的PHP职业人员,所以在这之前小编还不知道怎么在PHP格式下,还可以把Word文件转换成PDF文件呢,所以今天小编就和大家分享一下用PHP把Word格式的文件转换成PDF格式的文件,希望对大家有帮助。

    php调用com组件配置 以openoffice为例

      什么是com组件?

      COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块。

      配置的目的主要是解决无法创建com对象问题,实际要实现功能word ppt xml转化为pdf

      php调用openoffice中com组件配置组要分为三步

      1. jdk支持,可能与这两个软件都和sun公司有关

      下载地址

      2. 安装openoffice

      下载地址 权限的配置

      .运行Dcomcnfg.exe
    组件服务――计算机――我的电脑 ――DCOM配置--选择

      图片1.png

      右击--属性--

      图片2.png

      对图中两个红色标记进行配置

      标示---选择交互式用户

      安全--启动和激活权限和 访问权限进行配置

      方式相同

      图片3.png

      进行编辑

      图示

      1510362817476337.png

      至此完成任务

    下面是操作步骤:

    1、 安装免费的openOffice软件,请至openoffice.org下载最新版本。

    2、 JDK支持,请自行搜索下载最新版本JDK。

    3、 安装完openOffice后,在开始--运行中输入Dcomcnfg打开组件服务。在组件服务—计算机—我的电脑—DCOMP配置中,选择


    图片5.png

    在这两项上分别点击右键属性,打开属性面板如下图:


    1510362926205301.png

    选择安全选项卡,分别在启动和激活权限和访问权限两项上点自定义,添加Everyone的权限。

    选择标识选项卡,选择交互式用户。

    4、安装完openOffice后,请先打开一次确认可以正常运行软件,然后退出后用命令行运行以下命令。

    先到安装目录下,例如:C:\Program Files\OpenOffice 4\program\

    执行命令:

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

    成功后即在后台运行了该软件。

    5、 如果是php5.4.5以前版本,需要在php.ini里把com.allow_dcom = true打开,即去掉前面的分号。如果是以后版本,需要在php.ini 里增加一行扩展extension=php_com_dotnet.dll,然后检查php的ext目录中是否存在该dll文件,如果没有请自行下载对应版本的dll。然后重启apache或IIS服务器。

    6、 代码实现

    <?php//PHP也可以实现导出Word文档为PDF的功能,不过要借助于第三方的类库,今天我们将为大家介绍PHP依靠com.sun.star.ServiceManager来转换Word为PDF文档的相关技巧。
    //PHP处理Word转PDF的示例代码:
    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 ("请确认OpenOffice.org库是否已经安装.\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);}
    $output_dir = "D:/temp/";$doc_file = "D:/temps/test03.docx";
    $pdf_file = "test03.pdf";
    $output_file = $output_dir.$pdf_file;$doc_file = "file:///".$doc_file;$output_file = " 
    word2pdf($doc_file,$output_file);
    ?>

    以上就是所有内容了,不管此类方法有没有完全帮你解决问题,希望都能给你解决此类问题的思维,如果大家有更好的建议也可以在评论区大显身手哦。

    相关推荐:

    Linux下使用php把word转pdf的实例分享

    关于C#如何将Word转换成PDF的方法汇总

    .NET存储PDF、Word和Excel到数据库的方法详解

    以上就是用php把word格式文件转换成pdf文件的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:word php PDF
    上一篇:php实现分页效果的示例 下一篇:php分页的实现原理
    线上培训班

    相关文章推荐

    • 你知道这个PHP命令行选项解析库(pflag)吗?• 带你看懂PHP中的class定义类与成员属性方法• PHP中如何才能将时间日期格式化?怎么计算时间差?• 最详细的教你PHP时间戳与日期时间的转换• PHP中应该怎样去完成时区的设置?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网