moogento / mpdf
用于生成PDF的PHP库
Requires
- php: ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0 || ~8.1 || ~8.2 || ~8.3
- ext-gd: *
- ext-mbstring: *
- myclabs/deep-copy: ^1.7
- paragonie/random_compat: ^1.4|^2.0|^9.99
- psr/log: ^1 || ^2 || ^3
- setasign/fpdi: ^2.1
Requires (Dev)
- mockery/mockery: ^0.9.5
- mpdf/qrcode: ^1.0.0
- phpunit/phpunit: ^5.0
- squizlabs/php_codesniffer: ^3.5.0
- tracy/tracy: ^2.4
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
README
mPDF 是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。
它基于 FPDF 和 HTML2FPDF(参见 CREDITS),并增加了一些功能。mPDF 由 Ian Back 编写,并按照 GNU GPL v2 许可发布。
注意:如果您在 mPDF GitHub 仓库主页或 Packagist 上查看此文件,请注意默认仓库分支是
development
,这可能不同于最后一个稳定版本。
要求
PHP版本和扩展
mPDF >=7.0
支持 PHP^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0
PHP 7.3
自mPDF v7.1.7
支持PHP 7.4
自mPDF v8.0.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版本起)如下
<?php require_once __DIR__ . '/vendor/autoload.php'; $mpdf = new \Mpdf\Mpdf(); $mpdf->WriteHTML('<h1>Hello world!</h1>'); $mpdf->Output();
这将使浏览器以 application/pdf
内容类型输出PDF。
设置 & 配置
所有 配置指令 都可以通过构造函数的 $config
参数设置。
建议通过 tempDir
配置变量设置自己的临时目录。目录必须对使用 mPDF 的用户具有写权限(推荐模式为 775
)。
警告: mPDF 将清理临时目录中的旧临时文件。请选择仅用于 mPDF 的专用路径。
<?php $mpdf = new \Mpdf\Mpdf(['tempDir' => __DIR__ . '/tmp']);
默认情况下,临时目录将位于 vendor 目录内,并由 post_install
composer 脚本设置正确的权限。
有关自定义临时目录的更多信息,请参阅Folder for temporary files部分中的说明。
如果您遇到问题,请参阅手册中的故障排除部分。
在线手册
在线手册可在 https://mpdf.github.io/ 查找。
对于一般性问题和故障排除,请使用Stack Overflow上的mpdf标签(mpdf tag),而不是项目的 issue 跟踪系统。
贡献
在提交问题和 pull request 之前,请阅读CONTRIBUTING.md文件。CONTRIBUTING.md
单元测试
使用PHPUnit进行 mPDF 的单元测试。
要开始,请在 mPDF 根目录下运行composer install
命令(您需要先安装composer)。
要执行测试,请在 mPDF 根目录下运行vendor/bin/phpunit
命令。
对于编写 mPDF 单元测试的任何帮助都将非常感激。如果您想帮忙,请注意,在单元测试期间,位于/tests/
目录下的任何 PHP 文件都将自动加载。