zoukankan      html  css  js  c++  java
  • 使用wkhtmltopdf的一些事情

    写在前面:最近项目中要使用到导出把网页导出到图表的问题,本来以为随便找一个第三方的东西就可以搞定,不过因为网页中有一些图表,所有遇到了很多的坑,最后决定使用wkhtmltopdf,因为它是用Qt WebKit 引擎做渲染虽然也有一些坑,但是可以满足需求了,下面就是一些记录。

    安装wkhtmltopdf

    wkhtmltopdf是一个可以执行的二进制文件,使用php调用系统的命令来执行。php用composer可以很容易的安装,也可以在网站上面直接下载然后安装,传送门

    // 用到的composer包
    https://packagist.org/packages/knplabs/knp-snappy
    https://github.com/KnpLabs/snappy
    
    // 项目是用yii1.0开发
    https://packagist.org/packages/dmitrivereshchagin/yii-snappy
    https://github.com/dmitrivereshchagin/yii-snappy
    
    // 具体的版本
    composer require symfony/process 2.8.32
    composer require knplabs/knp-snappy 0.4.2
    composer require h4cc/wkhtmltopdf-amd64 0.12.x
    
    

    目前并没有深入的研究很多的用法,先来简单的记录一下,用php的knp-snappy来操作wkhtmltopdf的过程以及遇到的坑。

    简单的使用

    class CPDF
    {
        public static function getPdf()
        {
            Yii::import('application.vendor.autoload', true);
            $binaryPath = Yii::app()->params['pdfBinaryPath'];
            $pdf = new KnpSnappyPdf($binaryPath);
            $pdf->setOption('page-size', 'A3');
            $pdf->setOption('no-background', true);
            return $pdf;
        }
    
        public static function export($fileName, $html)
        {
            $pdf = self::getPdf();
            $pdf = $pdf->getOutputFromHtml($html);
            Yii::app()->request->sendFile($fileName, $pdf);
        }
    }
    

    可能会遇到的坑
    1、导出的pdf中没有中文字体,这个是因为需要在系统安装一个字体,现在用的linux,默认的字体路径是/usr/share/fonts,字体文件可以从windows系统中的字体拷贝。
    2、导出半截失败,可能是因为网页中包含了相对地址的资源。
    3、需要执行的权限,没有权限白扯
    4、使用hcharts有一个动画效果,直接导出会出现图表是半个的情况,需要关掉动画的效果。
    5、分页标识

    <div style="page-break-after:always"></div>
    

    最后附上一个比较详细的说明吧,传送门

  • 相关阅读:
    改造vant日期选择
    css3元素垂直居中
    npm综合
    (转)网页加水印方法
    Mac下IDEA自带MAVEN插件的全局环境配置
    隐藏注册控件窗口
    High performance optimization and acceleration for randomWalk, deepwalk, node2vec (Python)
    How to add conda env into jupyter notebook installed by pip
    The Power of WordNet and How to Use It in Python
    背单词app测评,2018年
  • 原文地址:https://www.cnblogs.com/hanpengyu/p/8404106.html
Copyright © 2011-2022 走看看