美文网首页
如何使用PHP用LibreOffice实现word转pdf

如何使用PHP用LibreOffice实现word转pdf

作者: 東_b3af | 来源:发表于2020-12-11 17:15 被阅读0次

    最近在使用php想做个word转pdf实现在线预览的功能

    LibreOffice是OpenOffice办公套件衍生版, 同样免费开源,并且是跨平台的,支持windows和linux服务器安装。

    一、windows下的安装及使用

    1.下载并安装《LibreOffice 便携版》

    下载地址:https://zh-cn.libreoffice.org/download/libreoffice/

    初次下载需安装,安装后,可以将安装后的文件夹直接拷贝到U盘或者直接打个压缩包,其他windows电脑使用只需要解压就可以了,无须再次安装,相当于是绿色版。

    2.通过cmd命令实现文档转换

    首先打开cmd进入LibreOffice目录,然后运行以下命令:

    LibreOfficeWriterPortable --headless --convert-to pdf {文档路径} --outdir {导出目录路径}

    例如:

    运行后打开pdf导出的目录观察是否有pdf文件产生即可。本身cmd命令运行后没有任何结果和反馈。

    3.php调用命令实现文档转换

    $retval = 1;

    // exec() might be disabled

    $cmd = 'D:/soft/LibreOfficePortablePrevious/LibreOfficeWriterPortable.exe  --headless --convert-to pdf 1.doc --outdir ./';

    if (function_exists('exec')){

        @exec($cmd, $output, $retval);

    }

    // Did it work?

    if ($retval > 0){

        exit('process_failed');

    }

    echo 'success';

    二、Centos下的安装及使用

    1.安装LibreOffice

    直接使用yum安装即可:

    yum install libreoffice

    yum install libreoffice-headless

    2、执行命令转换pdf文档

    跟windows类似,执行以下命令即可转换文档:

    soffice --headless --convert-to pdf {文档路径} --outdir {导出目录路径}

    例如:

    3、解决中文不显示,变方框的问题

    在linux下转换pdf,可能会出现中文字体不被识别,变成小方框的问题,解决步骤:

    1.把Windows下的字体C:\Windows\Fonts下的常用字体,即simsun.ttc等复制到usr/share/fonts目录下。

    2 修改字体权限

    sudo chmod 644 simsun.ttc

    3. 更新字体缓存:

    sudo fc-cache -fv

    4、php调用命令实现文档转换

    $retval = 1;

    // exec() might be disabled

    $cmd = 'export HOME=/tmp/ && /usr/bin/libreoffice --headless --convert-to pdf 1.doc --outdir ./';

    if (function_exists('exec')){

        @exec($cmd, $output, $retval);

    }

    // Did it work?

    if ($retval > 0){

        exit('process_failed');

    }

    echo 'success';

    相关文章

      网友评论

          本文标题:如何使用PHP用LibreOffice实现word转pdf

          本文链接:https://www.haomeiwen.com/subject/fzajgktx.html