我还是有点新的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显示图像?
答案 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 /开头。