一、介绍
mPDF 是一个强大的PHP库,它能够将 UTF-8 编码的 HTML 内容转换为 PDF 文件。
这个库基于 FPDF 和 HTML2FPDF,由 Lan Back 开发,并在 GNU GPL v2 许可下发布。
mPDF 以其丰富的功能和灵活性,成为 PHP 开发者在生成 PDF 文件时的首选之一。
功能特点
高级 CSS 支持:mPDF 支持大部分 CSS 属性,使得从网页到 PDF 的转换更加流畅
图像和 HTML 内容:可以轻松地在 PDF 中嵌入图像和 HTML 内容
多列布局:支持创建多列文档,类似于报纸的布局
表单创建:允许在 PDF 中创建和处理表单
水印和背景:可以为 PDF 页面添加水印和背景图像
系统要求
必须加载 mbstring 和 gd 扩展
对于一些高级特性,可能还需要 zlib、bcmath 或 xml 等扩展
二、安装
composer 安装:
composer require mpdf/mpdf
三、使用
3.1、基础使用
使用 mPDF 生成 PDF 非常简单。
以下是一个基本的使用示例:
$mpdf = new \Mpdf\Mpdf();
$s = "";
$mpdf->WriteHTML($s);
$mpdf->Output();
这段代码将在浏览器中以 application/pdf 的 Content-type 输出 PDF 文件。
3.2、HTML 文件使用
use Mpdf\Mpdf;
use Mpdf\Output\Destination;
$html = file_get_contents('./pdf01.html');
$mPdf = new Mpdf([
'autoScriptToLang' => true,
'autoLangToFont' => true,
'useSubstitutions' => true,
]);
// 加载HTML文件
$mPdf->WriteHTML($html);
// 输出PDF文件
$mPdf->Output('./pdf01.pdf', Destination::FILE);
3.3、设置字体和纸张大小
$mPdf = new Mpdf([
'autoScriptToLang' => true,
'autoLangToFont' => true,
'useSubstitutions' => true,
'mode' => 'UTF-8',
'format' => 'A4',
'default_font_size' => 16,
'default_font' => '宋体'
]);
3.4、使用 PHP 模板文件
use Mpdf\Mpdf;
use Mpdf\Output\Destination;
$htmlTpmFile = file_get_contents('./pdf03.html');
$search = [
'{%username%}',
'{%age%}',
'{%address%}',
];
$username = 'Tinywan';
$age = date('Y-m-d H:i:s');
$address = '浙江省杭州市西湖区梦想小镇';
$replace = [
$username,
$age,
$address,
];
// 替换模板
$html = str_replace($search, $replace, $htmlTpmFile);
$mPdf = new Mpdf([
'autoScriptToLang' => true,
'autoLangToFont' => true,
'useSubstitutions' => true,
'format' => 'A4',
'default_font_size' => 14,
'default_font' => '宋体'
]);
// 加载HTML文件
$mPdf->WriteHTML($html);
// 输出PDF文件
$mPdf->Output('./pdf03.pdf', Destination::FILE);