mPDF不渲染图像(mPDF错误:图像错误无法找到图像文件)


mPDF not rendering images (mPDF error: IMAGE Error Could not find image file)

我们从4月份开始在工作服务器上受到这个问题的困扰。在客户报告pdf不再显示图像之前,我们的应用程序一切正常。

我们的PDF首先通过HTML渲染生成。当HTML呈现显示时,图像显示正确。此外,如果将mPDF中注明的图像URL复制并粘贴到新选项卡中,则图像显示正确。

然而

…如果我们从不同的域加载图像,那么图像将被正确渲染。通过绝对路径,相对路径或URL路径加载图像都会导致此错误:

mPDF错误:IMAGE error (http://www.aibsonline.co.uk/logo.gif):无法找到图像文件

但是,正如您将看到的,徽标url在粘贴时可以工作。文件权限已经作为标准进行了测试(这就是为什么它在根目录中),最高可达777。在我们目前看到的两种情况下,Server都是Linux服务器。

呈现徽标的HTML代码:
<div id="logo_wrapper" class="left">
<img width="107" height="76" src="<?php echo base_url('logo.gif'); ?>" />
</div>

这是一个真正的损失,并开始影响越来越多的客户。

感谢您的帮助。

如果渲染代码和图像在同一目录中,并且我们没有使用绝对路径,则渲染图像,例如

<img width="107" height="76" src="logo.gif" />

我今天偶然发现了这个问题。我的问题是,我使用的域名没有解析回服务器时,从服务器访问。我在服务器上的hosts文件中添加了一个条目,图像开始显示。

解决我的问题的等效主机文件条目将是:

127.0.0.1 www.aibsonline.co.uk

或者确保www.aibsonline.co.uk在您的服务器使用的DNS中解析到您的服务器。

看起来mPDF作为cURL web客户端访问图像,因此服务器上的DNS需要正确配置以引用自己。

我有一个类似的问题,我解决如下:

1。检查是否在php ini文件中安装并启用了gd库。如果没有,请安装gd库。

2。打开调试变量

$mpdf = new mPDF();    
$mpdf->showImageErrors = true;

3。尝试互换图像的绝对/相对路径

<img src="http://someDomain/directory/image.jpg">
<img src="./directory/image.jpg">

我尝试了所有其他答案,但对我来说,只添加

$mpdf->curlAllowUnsafeSslRequests = true;

修复问题

同样的问题,我发现get_headers()返回:

"HTTP/1.1 412 Precondition Failed"

提供者说这是由于web防火墙,因为请求格式不正确,并且没有设置user_agent。

一个ini_set('user_agent', 'Mozilla/5.0');解决了这个问题。

在使用mpdf的WordPress插件中,mpdf不使用WordPress http类,也不设置user_agent。我通过添加mu-plugins解决了这个问题:

global $wp_version;
ini_set('user_agent',apply_filters( 'http_headers_useragent', 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ));

我也遇到了同样的问题。mPDF运行DOG慢,最终会显示"无法找到图像文件"错误。在

  1. 检查以确保图像确实存在
  2. 检查文件
  3. 的权限
  4. 检查服务器上的所有错误日志
  5. 梳理mPDF
  6. 上的文档

我发现有问题的图像文件不知何故损坏了。我把图像下载到我的本地电脑上,用图像编辑器(Paint)打开它。. NET),将其重新保存为.gif文件,并再次将其上传到服务器。这似乎解决了问题。你的里程可能会有所不同。

另外,为了它的价值,我不得不使用images/image.gif而不是文件路径/images/image.gif

确保在PDF类文件中有与图像相关的函数。如parsejpg, parsepg, parseif等

我有密码保护的服务器。htaccess/.passwd),经过一些研究,我了解到mPDF使用HTTP获取图像,但由于密码保护,服务器阻止了公众的图像。删除密码保护后,我有ssl证书问题,我启用usafe请求,它开始工作

 $mpdf->curlAllowUnsafeSslRequests = true;  

还可以始终启用调试模式并遵循错误消息

$mpdf->showImageErrors = true;
$mpdf->debug = true;