PHP脚本生成的mPDF图像

时间:2017-09-29 01:24:29

标签: php pdf composer-php mpdf

我正在尝试使用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生成的图像适用于许多人,甚至文档说这是可能的。但它对我不起作用。

1 个答案:

答案 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脚本用服务器。