无法在mpdf中显示base64图像

时间:2016-10-12 04:14:22

标签: php html mpdf

我还是有点新的mpdf,我尝试使用嵌入式base64使用mpdf显示图像。以下是我的代码。

$kad_photo = base64_encode($row['kad_photo']);
header('Content-Type: image/jpeg;');
$photo = "<img src=\"data:image/jpeg;base64, ".$kad_photo."\"/>";
$mpdf->WriteHTML($photo);

当我放$mpdf->showImageErrors = true;时,我收到此错误:

mPDF error: IMAGE Error (0f5155bea7f7e18dc9f7c35b695d1705): Error parsing JPG header

我尝试了这种方法并且有效!

$mpdf->WriteHTML("<img src=".$_SERVER['DOCUMENT_ROOT']."/vms/images/logo/logo.png " . 
                 "width=\"500\" height=\"50\">");

但是对于我无法展示它的基础64.

除此之外,对于$photo,我得到file_put_content字符串并将其粘贴到jsfiddle并且它可以正常工作!但是在mpdf中我无法显示base64图像。

为什么我无法使用嵌入式base64显示图像?

可能需要的信息

  1. php.ini中的Gd模块已启用
  2. Window 10单一语言

3 个答案:

答案 0 :(得分:5)

我解决了我的问题。这是我如何解决它。

更改此

$photo = "<img src=\"data:image/jpeg;base64, ".$kad_photo."\"/>";

到这个

$photo = "<img src=\"data:image/jpg;base64, ".$kad_photo."\"/>";

答案 1 :(得分:1)

$html= '<img src="data:image/jpeg;base64,'.base64_encode( 
stripslashes($row['kad_photo']) ).'"/>';
$mpdf->WriteHTML($html);
$mpdf->Output('My.pdf','D');

请尝试这个。

答案 2 :(得分:0)

在我的情况下,我正在使用的某些用户数据中的图像类型设置不正确(设置为png,但图像数据为jpeg)。

$mpdf->showImageErrors = true;显示“解析PNG标识符时出错”

浏览器似乎仍然能够找出并显示图像,但是MPDF很挑剔。

我通过将base64数据粘贴到online decoder并尝试各种编码来解决这个问题。

此外,如果对任何人都有用,JPEG数据似乎以/ j9 /开头。