devsconexa / 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.5
- 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-conexa
- dev-master
- dev-test
- dev-issue-1646
- dev-remote-fetching-enhancements
- dev-upca-lenght-validation
This package is not auto-updated.
Last update: 2024-09-19 19:50:48 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();
这将输出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文件都将自动加载。