第一部分 wkhtmltopdf的部署, 参见这篇文章
第二部分 用Composer给ThnkPHP安装phpwkhtmltopdf插件
可以将Composer设置为国内镜像, 以免下载卡住; 就像这样
composer config -g repo.packagist composer https://packagist.phpcomposer.com
进入ThinkPHP的根目录, 就是vendor的上层目录, 在此执行如下指令
composer require mikehaertl/phpwkhtmltopdf
第三部分 Composer报错的处理
如果运行Composer时出现以下报错:Warning: putenv() has been disabled for security reasons in…
那么可能是你的php.ini中禁用了某些函数, 可以编辑你的php.ini
->搜索 disable_functions
->找到被禁用的函数, 将其删除
第四部分 使用phphtmltopdf
然后就可以用了, 示例代码如下
<?php
namespace app\index\controller;
use app\index\controller\IndexBase;
use mikehaertl\wkhtmlto\Pdf;//关键代码: 引用phphtmltopdf
//这是一个叫做Book的控制器
class Book extends IndexBase
{
//在这个方法来调用
public function savePdf()
{
$pdf = new Pdf('http://www.baidu.com');
if (!$pdf->saveAs('page1.pdf')) {
$error = $pdf->getError();
}
}
}
这样, 我们调用/index/book/savepdf, 就会在ThinkPHP的/public目录下生成一个叫page1.pdf的文件, 而它就是由http://www.baidu.com转码成pdf而得的
但是我第一次运行它时, 系统是报错的, 系统这么说: proc_open() has been disabled for security reasons; 解决方法是像本文第三部分那样, 并重启PHP服务.