increstive / mpdf
PHP库,可从UTF-8编码的HTML生成PDF文件
Requires
- php: ^5.6 || ^7.0 || ~8.0.0 || ~8.1.0
- ext-gd: *
- ext-mbstring: *
- myclabs/deep-copy: ^1.7
- paragonie/random_compat: ^1.4|^2.0|^9.99.99
- psr/log: ^1.0 || ^2.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.4
- 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-master
- v8.0.18
- 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-fix-otl
- dev-feature-psr7
- dev-development
- dev-test
- dev-remote-fetching-enhancements
- dev-php8-support
- dev-upca-lenght-validation
This package is auto-updated.
Last update: 2024-09-22 15:41:29 UTC
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.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需要加载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();
这将输出PDF,作为application/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用户基数更大,更有可能及时回答您的问题。
贡献
在提交问题和pull request之前,请阅读CONTRIBUTING.md文件。
单元测试
mPDF的单元测试使用PHPUnit进行。
要开始,请在mPDF根目录下从命令行运行composer install(您需要先安装composer)。
要执行测试,请在mPDF根目录下从命令行运行composer test。
任何关于为mPDF编写单元测试的帮助都将是极大的欢迎。如果您想帮忙,请注意,任何位于/tests/目录中的PHP文件在单元测试时都将自动加载。