XAMPP本地环境DOMPDF生成PDF图片加载失败求助
解决DOMPDF图片加载失败问题
针对你遇到的“image not found or type unknown”错误,结合你的代码和本地开发环境,可通过以下步骤修复:
1. 修正图片路径错误
你代码里用了Laravel Blade的{{ url() }}语法,但当前是原生PHP环境无法解析该语法,同时本地路径格式也存在问题,可选择任一方式调整:
方式一:使用本地绝对路径(Windows系统注意格式)
// 转义反斜杠写法 $html .= '<img src="C:\\xampp\\htdocs\\magna\\logo1.jpeg" style="position: absolute; top: -7px; left: 1px; width: 50px;" />'; // 或改用正斜杠(更推荐,避免转义问题) $html .= '<img src="C:/xampp/htdocs/magna/logo1.jpeg" style="position: absolute; top: -7px; left: 1px; width: 50px;" />';
方式二:使用本地HTTP访问URL
利用XAMPP的本地服务,通过HTTP路径访问图片:
$html .= '<img src="http://localhost/magna/logo1.jpeg" style="position: absolute; top: -7px; left: 1px; width: 50px;" />';
方式三:使用相对路径(前提是当前PHP脚本与图片同目录)
若你的PHP文件位于C:\xampp\htdocs\magna下,直接写图片文件名即可:
$html .= '<img src="logo1.jpeg" style="position: absolute; top: -7px; left: 1px; width: 50px;" />';
2. 调整纸张设置的调用时机
你当前把setPaper放在render()之后,这会导致设置不生效,需调整执行顺序:
$dompdf->loadHtml($html); // 先设置纸张尺寸和方向,再执行渲染 $dompdf->setPaper('A4', 'landscape'); $dompdf->render(); $dompdf->stream("invoice.pdf", array("Attachment" => false));
3. 确认GD扩展已正确启用
打开XAMPP的php.ini文件,查找extension=gd,确保该行没有被注释(去掉前面的;),之后重启Apache服务。
4. 验证图片有效性
- 确认
logo1.jpeg文件确实存在于指定路径中 - 检查图片格式是否为DOMPDF支持的类型(JPEG、PNG、GIF等)
- 确保文件无锁定、权限正常(XAMPP环境下一般无需额外设置)
内容的提问来源于stack exchange,提问作者Abbas Attarwala
相关产品推荐
相关产品推荐

