tevli / mpdf
PHP 库,用于从UTF-8编码的HTML生成PDF文件,其临时目录与主MPDF不同
Requires
- php: ^5.6 || ^7.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0
- ext-gd: *
- ext-mbstring: *
- mpdf/psr-http-message-shim: ^1.0 || ^2.0
- mpdf/psr-log-aware-trait: ^2.0 || ^3.0
- myclabs/deep-copy: ^1.7
- paragonie/random_compat: ^1.4|^2.0|^9.99.99
- psr/http-message: ^1.0 || ^2.0
- psr/log: ^1.0 || ^2.0 || ^3.0
- setasign/fpdi: ^2.1
Requires (Dev)
- mockery/mockery: ^1.3.0
- mpdf/qrcode: ^1.1.0
- squizlabs/php_codesniffer: ^3.5.0
- tracy/tracy: ~2.5
- yoast/phpunit-polyfills: ^1.0
Suggests
- ext-bcmath: Needed for generation of some types of barcodes
- ext-xml: Needed mainly for SVG manipulation
- ext-zlib: Needed for compression of embedded resources, such as fonts
This package is auto-updated.
Last update: 2024-09-20 16:26:50 UTC
README
mPDF 是一个PHP库,它可以从UTF-8编码的HTML生成PDF文件。
它基于 FPDF 和 HTML2FPDF (见 CREDITS), 具有多个增强功能。mPDF 由 Ian Back 编写,并按照 GNU GPL v2 许可发布。
⚠ 如果您正在mPDF GitHub仓库主页或Packagist上查看此文件,请注意,默认仓库分支是
development,可能与最后一个稳定版本不同。
要求
PHP版本和扩展
PHP >=5.6 <7.3.0支持mPDF >= 7.0PHP 7.3自mPDF v7.1.7支持PHP 7.4自mPDF v8.0.4支持PHP 8.0自mPDF v8.0.10支持PHP 8.1自mPDF v8.0.13支持PHP 8.2自mPDF v8.1.3支持PHP 8.3自mPDF v8.2.1支持
PHP mbstring 和 gd 扩展必须加载。
某些高级功能可能需要其他扩展,例如,使用 zlib 压缩输出和嵌入资源(如字体)、使用 bcmath 生成条形码或使用 xml 进行字符集转换和SVG处理。
已知的服务器注意事项
mPDF 在单线程服务器(如 php -S)中获取外部HTTP资源时存在一些问题。建议使用如nginx (php-fpm) 或 Apache 之类的合适服务器。
支持我们
请考虑通过任何价值的捐赠来支持 mPDF 的发展。可以在 文档主页 上找到 捐赠按钮。
安装
官方安装方法是使用 composer 和其 Packagist 包 mpdf/mpdf。
$ composer require mpdf/mpdf
使用
该库的最简单用法(自 7.0 版本起)如下
<?php require_once __DIR__ . '/vendor/autoload.php'; $mpdf = new \Mpdf\Mpdf(); $mpdf->WriteHTML('<h1>Hello world!</h1>'); $mpdf->Output();
这将输出PDF,并将其作为 application/pdf 内容类型内联到浏览器中。
设置 & 配置
所有 配置指令 都可以通过构造函数的 $config 参数设置。
建议通过 tempDir 配置变量设置自己的临时目录。目录必须对使用 mPDF 的用户具有写权限(推荐模式 775)。
警告: mPDF 将清理临时目录中的旧临时文件。请选择仅用于 mPDF 的路径。
<?php $mpdf = new \Mpdf\Mpdf(['tempDir' => __DIR__ . '/tmp']);
默认情况下,临时目录将位于 vendor 目录中,并且将由 post_install composer 脚本具有写权限。
有关自定义临时目录的更多信息,请参阅临时文件文件夹部分的说明,该说明位于手册的“安装与设置”部分。
如果您遇到问题,请阅读手册中关于故障排除的部分。
关于CSS支持和开发状态
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文件在单元测试时都会自动加载。