mPDF 是一个 PHP 库,它可以从 UTF-8 编码的 HTML 生成 PDF 文件。
它基于 FPDF 和 HTML2FPDF(请参阅 CREDITS),并具有许多增强功能。 mPDF 由 Ian Back 编写,并根据 GNU GPL v2 许可证发布。
如果您在 mPDF GitHub 存储库主页或 Packagist 上查看此文件,请注意,默认存储库分支是development ,可能与上一个稳定版本不同。
mPDF >= 7.0支持PHP >=5.6 <7.3.0
自mPDF v7.1.7起支持PHP 7.3
自mPDF v8.0.4起支持PHP 7.4
自mPDF v8.0.10起支持PHP 8.0
从mPDF v8.0.13开始支持PHP 8.1
从mPDF v8.1.3开始支持PHP 8.2
从mPDF v8.2.1开始支持PHP 8.3
从mPDF v8.2.5开始支持PHP 8.4
必须加载 PHP mbstring和gd扩展。
某些高级功能可能需要额外的扩展,例如用于压缩输出的zlib和嵌入资源(例如字体)、用于生成条形码的bcmath或用于字符集转换和 SVG 处理的xml 。
mPDF 在使用单线程服务器(例如php -S获取外部 HTTP 资源时存在一些问题。建议使用合适的服务器,例如 nginx (php-fpm) 或 Apache。
考虑通过捐赠任何价值来支持 mPDF 的开发。捐赠按钮可以在文档的主页上找到。
官方安装方法是通过composer及其packagist包mpdf/mpdf。
$ composer require mpdf/mpdf
该库最简单的用法(自 7.0 版起)如下:
<?phprequire_once __DIR__ 。 '/vendor/autoload.php';$mpdf = new MpdfMpdf();$mpdf->WriteHTML('<h1>Hello world!</h1>');$mpdf->Output();这会将 PDF 作为application/pdf内容类型内联输出到浏览器。
所有配置指令都可以通过构造函数的$config参数设置。
建议通过tempDir配置变量设置自己的临时目录。对于使用 mPDF 的用户(通常是cli 、 webserver 、 fpm ),该目录必须具有写入权限(建议使用模式775 )。
警告: mPDF 将清理临时目录中旧的临时文件。选择仅适用于 mPDF 的路径。
<?php$mpdf = new MpdfMpdf(['tempDir' => __DIR__ . '/tmp']);
默认情况下,临时目录将位于供应商目录内,并且具有post_install Composer 脚本的写入权限。
有关自定义临时目录的更多信息,请参阅手册中“安装和设置”部分中“临时文件文件夹”的注释。
如果您遇到问题,请阅读手册中有关故障排除的部分。
mPDF 总体来说是一个相当过时的软件。如今,有更好的替代方案,尽管不是用 PHP 编写的。
如果您无法使用非 PHP 方法生成 PDF 文件,或者您想利用 mPDF 相对于浏览器方法的一些优势(颜色处理、预打印、条形码支持、页眉和页脚、页码、目录等),请使用 mPDF但请注意,可能需要为 mPDF 定制的 HTML/CSS 模板。
如果您正在寻找最先进的 CSS 支持,将现有 HTML 页面镜像为 PDF,请使用无头 Chrome。
mPDF 仍将进行更新,以增强一些内部功能并支持较新版本的 PHP,但很可能不会实现更好和/或较新的 CSS 支持。
在线手册可在 https://mpdf.github.io/ 获取。
对于一般问题或疑难解答,请使用讨论。
您还可以使用 Stack Overflow 上的 mpdf 标签,因为 StackOverflow 用户群更有可能及时回复您。
在提交问题和拉取请求之前,请阅读 CONTRIBUTING.md 文件。
mPDF 的单元测试是使用 PHPUnit 完成的。
首先,在 mPDF 根目录中从命令行运行composer install (您需要先安装 Composer)。
要执行测试,请在 mPDF 根目录中从命令行运行composer test 。
非常感谢为 mPDF 编写单元测试的任何帮助。如果您想提供帮助,请注意,在单元测试时,位于/tests/目录中的任何 PHP 文件都将自动加载。