mpdf使用踩坑总结

mpdf是php生成pdf的一种方法。

github链接:mpdf/mpdf: PHP library generating PDF files from UTF-8 encoded HTML (github.com),里面有安装和使用说明。

Manual也有详细的使用说明:http://mpdf.github.io/

喜欢直接看汉语的可以看看这篇博客,这个博主对github中内容进行了简单的翻译:mpdf中文开发使用文档附demo实例 - zh7314 - 博客园 (cnblogs.com)

我是在linux服务器上直接使用mpdf的,在尝试github中demo例子的时候过程和踩坑总结如下:(服务器php版本是php5.6,第一步结束后安装的mpdf是8.0版

1、安装mpdf:使用composer安装

composer require mpdf/mpdf

2、写demo的php文件:(php文件要和vendor文件夹同级)

<?php

require_once __DIR__ . '/vendor/autoload.php';

$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('<h1>Hello world!</h1>');
$mpdf->Output();

?>

3、运行demo的php文件,报错:

错误提炼总结如下:Mpdf\MpdfException' with message 'Temporary files directory "/vendor/mpdf/mpdf/src/Config/../../tmp" is not writable.

翻译:临时文件不可写(没有写权限)

思路:修改文件权限(发现不可),疯狂百度

解决方案:设置指定的临时文件目录即可(参考mPDF – 临时文件目录…不可写-梦云博客 (6u68.com)

修改代码如下:

<?php

require_once __DIR__ . '/vendor/autoload.php';

$mpdf = new \Mpdf\Mpdf([
	'tempDir' => __DIR__ . '/tmp'
]);
$mpdf->WriteHTML('<h1>Hello world!</h1>');
$mpdf->Output();

?>

4、运行demo的php文件,报错:

Uncaught exception 'Mpdf\MpdfException' with message 'Unable to set PDF file protection, CSPRNG Functions are not available. Use paragonie/random_compat polyfill or upgrade to PHP 7.

错误提炼如下:'Mpdf\MpdfException' Use paragonie/random_compat polyfill or upgrade to PHP7

翻译:要么用paragonie/random_compat polyfill,要么把你的php换成7.0及以上

思路:服务器的php版本肯定不能换,只能选择前面的方法解决

解决方案:百度paragonie/random_compat polyfill,出现github:paragonie/random_compat: PHP 5.x support for random_bytes() and random_int() (github.com),看了github中的说明后发现就是用于php5.x版本的包,用来支持一些只支持php7.x的程序

按照github上的指示,运行两个composer:

# For libraries and frameworks that support PHP 5 but may be used by
# other software that only supports PHP 7:
composer require paragonie/random_compat:\>=2

# For software that explicitly needs PHP 5 support:
composer require paragonie/random_compat:\<9.99

5、运行demo的php文件,成功:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值