标签: pdf

  • centos下html生成pdf的方法 支持php等诸多

    由于要将html生成pdf,找了很多插件:tcpdf、dompdf、mpdf等很多,但是都对css的属性支持不佳,不能满足需求;经过再次寻找发现很多推荐 wkhtmltoxpdf,于是在centos下开始测试。

    环境:centos 7 ,64位。

    进入任一目录,执行下载,现在wkhtmltopdf 提供了直接安装包,方便多了:https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm

    wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm

    如果提示缺少依赖,请直接yum install

    错误:依赖检测失败:
            fontconfig 被 wkhtmltox-1:0.12.5-1.centos7.x86_64 需要
            libX11 被 wkhtmltox-1:0.12.5-1.centos7.x86_64 需要
            libXext 被 wkhtmltox-1:0.12.5-1.centos7.x86_64 需要
            libXrender 被 wkhtmltox-1:0.12.5-1.centos7.x86_64 需要
            xorg-x11-fonts-75dpi 被 wkhtmltox-1:0.12.5-1.centos7.x86_64 需要
            xorg-x11-fonts-Type1 被 wkhtmltox-1:0.12.5-1.centos7.x86_64 需要

    安装依赖:

    yun install  fontconfig libX11 libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1

    wkhtmltoxpdf 对中文的支持不够好,所以需要安装一下 宋体:simsun.ttc , 自行百度下载,吧下载的字体放在:/usr/share/fonts/  

     

    执行测试:

    wkhtmltopdf http://www.iamlintao.com iamlintao.pdf

    格式说明: 命令  html地址  文件名

     

    wkhtmltoxpdf 的参数/命令:

    php调用示例:

    //请确保执行PHP的Linux用户有权操作 wkhtmltopdf 所在目录,将 wkhtmltopdf 或操作wkhtmltopdf的shell脚本放在 www项目目录下将是省力的做法
        $filename = date('YmdHis');
        $pdf_file_name = $filename.'.pdf';
        $wkhtmltopdf_exec_url = "/home/wwwroot/default/web/public/wkhtmltopdf-amd64";
        $pdf_url = " /home/wwwroot/default/web/upload/pdf/";

        shell_exec("$wkhtmltopdf_exec_url  $pdf_url"."$html_file_name"." $pdf_url"."$pdf_file_name");

        if(file_exists("$pdf_url"."$pdf_file_name")){
         echo '<span>Success.</span>'; 
       }else{ 
         echo '<span>Error.</span>'; 
       }