TCPDF生成PDF时图片无法显示问题求助(附相关代码)
解决TCPDF生成PDF时图片无法显示的问题
我来帮你一步步排查这个问题,结合你的代码细节,常见的原因和修复方案如下:
开启远程图片加载权限
TCPDF默认禁止加载远程图片,这是最容易踩的坑。你需要在调用writeHTML之前,添加一行代码开启远程图片支持:$pdf->setRemoteImages(true);这会允许TCPDF从HTTPS/HTTP地址加载图片资源。
验证图片路径的正确性
先手动访问你拼接的图片URL(https://sbfasto.com/uploads/signature/'.$signature.'),确认图片能在浏览器正常打开:- 检查
$signature变量是否完整包含了图片的文件名和后缀(比如abc.png,而不是只有abc) - 确认服务器上的图片文件路径和文件名完全匹配,没有拼写错误
- 检查
修复HTML字符串的语法问题
你的代码里有两处容易忽略的错误:- 单引号字符串中的变量不会被解析:你直接在单引号里写了
$photoofdoc和$final_adminremark,PDF里会显示这些变量名而不是实际值,要改成字符串拼接的形式,比如'.$photoofdoc.' - 图片样式的
height缺少单位:style="height:70;要改成style="height:70px;,否则TCPDF的HTML解析器无法识别高度值
修正后的HTML代码示例:
$signature = $_POST['signature']; $imageSrc = 'https://sbfasto.com/uploads/signature/' . $signature; $tbl = '<table cellspacing="0" cellpadding="8" border="1"> <tr> <td style="width:25%;">Photo of the Documents ' . $imagessignature . '</td> <td style="width:25%">' . $photoofdoc . '</td> <td style="width:25%">Approved By-' . $signature . '<br>' . $final_adminremark . '</td> <td style="width:25%;"> <img style="height:70px; width:80px;" src="' . $imageSrc . '" /> </td> </tr> </table>';- 单引号字符串中的变量不会被解析:你直接在单引号里写了
检查图片权限和格式
- 确保服务器上的图片文件权限设置为可读(比如
755),TCPDF需要读取到文件内容才能渲染 - 确认图片格式是TCPDF支持的(JPG、PNG、GIF等常见格式都可以,避免使用WebP这类不支持的格式)
- 确保服务器上的图片文件权限设置为可读(比如
额外排查点
如果是HTTPS图片,要确保你的PHP环境开启了openssl扩展,TCPDF依赖它来加载HTTPS资源。你可以通过phpinfo()查看扩展是否启用。
内容的提问来源于stack exchange,提问作者Ankit Patel
相关产品推荐
相关产品推荐

