• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP替换Word中变量并导出PDF图片的实现方法

    在线生成合同信息,一个 word 文件里面有些信息需要通过数据库读取计算出并填写到 word 文档中最终显示在线 pdf 预览功能,接下来我交大家如果实现该需求

    2、接下来实现如何替换文档内容

    我们新建一个 aa.docx 的文档,里面放了一个变量信息

    3、接下来使用 php 来替换这个变量信息 代码如下

     ...
     use PhpOffice\PhpWord\TemplateProcessor;
     ...
     
     $path = storage_path('aa.docx');
     // 生成world 存放目录
     $filePath = storage_path('contract.docx');
     // 声明模板象并读取模板内容
     $templateProcessor = new TemplateProcessor($path);
     // 替换模板内容
     $templateProcessor->setValue('contract', '北京乙方'); // 乙方
     
     // 生成新的 world
     $templateProcessor->saveAs($filePath);

    这样我们就完成了 word 里面模板变量的替换是不是比较简单呢

    4、接下来我们需要处理 word 文档转为 pdf 我也在网上了查了比较多的资料,什么先转为 html 然后通过 其它包的方式或者扩展来转 pdf 确实都能实现,但是有一点 word 转为 html 的时候格式会丢失这就和我们的需求有点偏离,后面转换了方向,使用工具来把 word 转为 pdf 这里我推荐的工具为 unoconv 安装方式如下

    apt-get install unoconv
    #如果报错请求服务器语言设置为 LANG=”en_US.UTF-8″
     
    #使用命令把 word 转为 pdf
    unoconv -f pdf aa.docx
    #这个时候在当前目录下就会有一个 aa.pdf 的文件出来
    #但是会发现如果是中文的情况下转出来的 pdf 是乱码该如何解决

    5、pdf 生成出来中文乱码解决方案,安装一个中文字体

     # 把电脑本机的宋体上传到服务器字体目录下 /usr/share/fonts 新建一个目录 win 或者其它,把中文字体上传到该目录下
     apt-get install mkfontscale #安装这个工具
     # 进入到/usr/share/fonts/win/ 执行命令
     mkfontscale  sudo mkfontdir  sudo fc-cache -fv
     # 然后重启服务器让字体生效
     reboot
     # 最后在执行
     unoconv -f pdf aa.docx
     # 看是不是中文乱码的问题解决了

    6、使用 php 的执行 shell 的函数来调用该函数自动生成即可

    shell_exec('/usr/binunoconv -f pdf aa.docx')

    注:如 php 执行 shell 脚本命令不生效时,此处的问题是用户权限不正确导致不能执行该命令 解决方案如下:

    # 编辑 vim /etc/sudoers文件
    root ALL=(ALL:ALL) ALL
    www-data ALL=(ALL) ALL
    %www-data ALL=(ALL) NOPASSWD:ALL
     
    zhouyao ALL=(ALL) ALL
    zhouyao ALL=(ALL) NOPASSWD:ALL
    # 增加用户zhouyao 忽略执行命令需要密码
    # 增加用户组和用户zhouyao
    useradd zhouyao -m # -m 创建家目录
    # 更改php-fpm的用户和用户组
    cd /etc/php/7.1/fpm/pool.d
    vim www.conf
    user = zhouyao
    group = zhouyao
    # 退出保存
    重启php-fpm和nginx,此时在浏览器在执行该文件可以看到pdf下载下来了
    # 如pdf中下载的中文是乱码,请自行安装一个中文字体到服务器字体目录即可

    总结

    到此这篇关于PHP替换Word中变量并导出PDF图片的实现方法的文章就介绍到这了,更多相关PHP替换Word变量并导出PDF图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • PHP中使用mpdf 导出PDF文件的实现方法
    • PHPExcel笔记, mpdf导出
    • 在PHP中读取和写入WORD文档的代码
    上一篇:PHP扩展安装方法步骤解析
    下一篇:php实现JWT验证的实例教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP替换Word中变量并导出PDF图片的实现方法 PHP,替换,Word,中,变量,并,