mpdf / mpdf
PHP库,用于从UTF-8编码的HTML生成PDF文件
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
- dev-development
- v8.2.4
- v8.2.3
- v8.2.2
- v8.2.1
- v8.2.0
- v8.1.6
- v8.1.5
- v8.1.4
- v8.1.3
- v8.1.2
- v8.1.1
- v8.1.0
- v8.0.17
- v8.0.16
- v8.0.15
- v8.0.14
- v8.0.13
- v8.0.12
- v8.0.11
- v8.0.10
- v8.0.9
- v8.0.8
- v8.0.7
- v8.0.6
- v8.0.5
- v8.0.4
- v8.0.3
- v8.0.2
- v8.0.1
- v8.0.0
- v8.0.0-RC2
- v8.0.0-RC1
- v7.1.9
- v7.1.8
- v7.1.7
- v7.1.6
- v7.1.5
- v7.1.4
- v7.1.3
- v7.1.2
- v7.1.1
- v7.1.0
- v7.0.3
- 7.0.2
- v7.0.1
- v7.0.0
- v7.0.0-RC4
- v7.0.0-RC3
- v7.0.0-RC2
- v7.0.0-RC1
- v7.0.0-beta2
- v7.0.0-beta1
- 6.1.x-dev
- v6.1.4
- v6.1.3
- v6.1.2
- v6.1.2a
- v6.1.1
- v6.1.0
- v6.0.0
- v6.0-beta
- v5.7.4
- v5.7.4a
- v5.7.3
- v5.7.3a
- v5.7.2
- v5.7.1
- v5.7.0
- v5.6.1
- v5.5.1
- dev-master
- dev-test
- dev-issue-1646
- dev-remote-fetching-enhancements
- dev-upca-lenght-validation
This package is auto-updated.
Last update: 2024-09-14 16:55:26 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.0
PHP 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();
这将作为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部分的说明。
如果您遇到问题,请阅读手册中关于故障排除的部分。
关于CSS支持和开发状态
mPDF整体来说是一款较为过时的软件。如今,有更好的替代品可用,尽管它们不是用PHP编写的。
如果无法使用非PHP方法生成PDF文件,或者想利用mPDF相对于浏览器方法的一些优点(如颜色处理、预打印、条码支持、页眉页脚、页码、目录等),请使用mPDF。但请注意,可能需要针对mPDF定制的HTML/CSS模板。
如果您正在寻找最先进的CSS支持,并将现有HTML页面转换为PDF,请使用无头Chrome。
mPDF将继续更新以提高一些内部功能并支持PHP的新版本,但更好的CSS支持或新版本可能不会实现。
在线手册
在线手册可在https://mpdf.github.io/找到。
一般故障排除
对于一般性问题或故障排除,请使用讨论。
您还可以在Stack Overflow上使用mpdf标签,因为Stack Overflow的用户更有可能及时回答您的问题。
贡献
在提交问题和拉取请求之前,请阅读CONTRIBUTING.md文件。
单元测试
mPDF的单元测试使用PHPUnit进行。
要开始,请在mPDF根目录下从命令行运行composer install
(您需要先安装composer)。
要执行测试,请在mPDF根目录下从命令行运行composer test
。
任何为mPDF编写单元测试的帮助都将受到高度赞赏。如果您想帮忙,请注意,位于/tests/
目录中的任何PHP文件在单元测试时都将自动加载。