我正在尝试使用PHP脚本生成图像,并将它们放入由mPDF库生成的PDF文件中。
我克隆了{
"storage-driver": "devicemapper",
"storage-opts": [
"dm.basesize=20G"
]
}
存储库,其中包含几个示例,其中一个包含图像,链接为https://github.com/mpdf/mpdf-examples,因此您可以看到源代码。
在mpdf-examples
中,example04_images.php
返回的图片不起作用。
从命令行tiger.php
执行时,该文件将包含php example04_images.php > out.pdf
类型的图像,这意味着它们无法加载。
从浏览器加载脚本时,它将永远被卡住。
我的作曲家档案是
[X]
当我删除使用{
"name": "mpdf/examples",
"description": "Example repository for Mpdf HTML to PDF generator",
"require": {
"ext-gd": "*",
"mpdf/mpdf": "7.0.0-beta2"
}
}
生成图像的代码时,会正确生成PDF。它只有在我包含这些php生成的图像时才会失败。
我的.php
是:
php -v
似乎使用PHP生成的图像适用于许多人,甚至文档说这是可能的。但它对我不起作用。
答案 0 :(得分:0)
mPDF在内部通过file_get_contents
调用获取图像。使用php -S
等单线程服务器时,后续请求会停止应用程序。 This SO QA整齐地总结了这种行为。这就是浏览器请求无限期挂起的原因。
mPDF可以在单线程服务器上完成它的一些功能,但不是全部。非常推荐使用合适的服务器(Apache,带有PHP-FPM的nginx)。
从命令行运行脚本时,图像未正确加载是有道理的。图像的路径是相对URL,必须由PHP处理才能返回正确的内容。没有后续的HTTP请求就没有简单的方法来实现它 - 这超出了简单的php cli调用范围。
要使示例在CLI中运行,您必须链接到真实图像文件(我相信在图像示例中可以正常工作),或者提供一个完整的URL来处理脚本将被处理的tiger.php脚本用服务器。