我对mPDF(版本5.7.1)有一个小问题。
此代码应生成带有图像文件的PDF:
$mpdf = new mPDF();
$html = '<img src="https://www.google.pl/images/srpr/logo11w.png"/>';
$mpdf->WriteHTML($html);
$mpdf->debug = true;
$output = $mpdf->Output();
exit();
没有图片,只有[x]
而已。
我已经google了足够的结论,它必须以这种方式完成,但我也试过realpath到文件。仍然没有。
我唯一没有尝试过的是<img src="logo11w.png">
并将图片复制到文件夹中,因为我不知道应该将文件logo11w.png
复制到哪个文件夹。
有什么建议吗?
答案 0 :(得分:61)
在使用mPDF生成PDF时,PNG图像显示为[X]时遇到了同样的问题。
我添加了:$mpdf->showImageErrors = true;
之后:$mpdf = new Mpdf();
并收到错误消息:
PNG图像需要GD库(alpha通道)#
因此,在运行apt-get install php5-gd
生成带有PNG的PDF后,就像魅力一样!
答案 1 :(得分:19)
在mPDF中包含图像有点棘手。我也有一些问题。我发现了更多的问题。
首先你应该打开调试变量:
$mpdf = new mPDF();
$mpdf->showImageErrors = true;
Usualy人们没有为PHP安装GD模块。在linux机器上,执行:
sudo apt-get install php5-gd
sudo service apache2 restart
在Windows服务器上,php_gd2.dll包含在标准PHP安装中,但默认情况下未启用。要启用它,请取消注释 php.ini 文件中的 extension = php_gd2.dll 行(从该行的开头删除#)并重新启动PHP扩展。 [1]
如果出现此错误,您可能会看到[x] image:
mPDF错误:图片错误(http://www.domain.com/directory/image.jpg):可以 找不到图像文件
如果图像存在且图像可访问,请检查网址。如果是,那么您可以尝试将绝对URL更改为相对。您可以尝试两个版本:
<img src="directory/image.jpg">
<img src="./directory/image.jpg">
实际上我也遇到了PNG格式的问题。转换PNG图像到JPG工作正常。
mPDF模板中的链接应与整个框架/系统相同。
答案 2 :(得分:8)
迁移脚本后我遇到了同样的问题。
问题是,mpdf文件夹中的tmp
目录不可写。我希望它有所帮助。
答案 3 :(得分:1)
确定。在对问题的最后评论(14:30)之后。这里使用与mPDF 5.4完全相同的代码。它将它的输出保存在脚本目录中作为test.pdf。防火墙问题?
<强>被修改强>
我有以下目录/文件:
因此,这些图像文件从脚本目录开始,就像它看起来一样。
require_once __DIR__ . DIRECTORY_SEPARATOR . 'MPDF/mpdf.php';
try {
$mpdf = new mPDF();
$mpdf->WriteHTML('<img src="images/wallpaper01.jpg" alt="" width="480">');
$mpdf->WriteHTML('<img src="images/wallpaper02.jpg" alt="" width="480">');
$mpdf->Output(__DIR__ . DIRECTORY_SEPARATOR . 'test.pdf', 'F');
} catch(Exception $e) {
echo $e;
}
答案 4 :(得分:1)
对我来说,它现在正在运作。希望这会对某人有所帮助。
解决方案:尝试使用图片的相对路径而不是网址。图片必须托管在同一台服务器上。
Ex:/var/www/mysite/image/xyz.jpg
答案 5 :(得分:1)
就我而言,问题仅在于使用6.0版本的透明PNG。此错误已在mpdf 6.1版本上修复。
我成功解决了从here下载6.1版本并覆盖项目中的mpdf文件的问题。
答案 6 :(得分:0)
您可以尝试以下方法:
$mpdf->imageVars['myvariable'] = file_get_contents('alpha.png');
或
$html = '<img src="var:myvariable"/>';
$mpdf->WriteHTML($html);
之后,您应该执行以下操作:
$mpdf->Image('var:myvariable', 0, 0);
在文档中详细了解此内容: mPDF Load Image
答案 7 :(得分:0)
在我的项目中,我解决的问题和解决方案是:
在服务器示例上设置src绝对路径:
src="/var/www/myproject/images/logo.png"
(如果图像在同一服务器上)。
如果图像来自外部服务器src是绝对路径示例:
src="https://www.google.bg/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"
。
希望这会帮助某人。
答案 8 :(得分:0)
足够了 解决方法是:
$mpdf->curlAllowUnsafeSslRequests = true;
全部
答案 9 :(得分:0)
我正在使用Code Ignitor和mpdf。安装php-gd5库后,我不得不使用configure命令--with-gd重新安装php
答案 10 :(得分:-2)
改为 在初始化$ html之前删除第二行 它当时未定义。 新代码将作为
$mpdf = new mPDF();
$html= "<img src='https://www.google.pl/images/srpr/logo11w.png' alt=''>";
$mpdf->WriteHTML($html);
$mpdf->debug = true;
$output = $mpdf->Output();
exit();