You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TCPDF生成PDF时图片无法显示问题求助(附相关代码)

解决TCPDF生成PDF时图片无法显示的问题

我来帮你一步步排查这个问题,结合你的代码细节,常见的原因和修复方案如下:

  • 开启远程图片加载权限
    TCPDF默认禁止加载远程图片,这是最容易踩的坑。你需要在调用writeHTML之前,添加一行代码开启远程图片支持:

    $pdf->setRemoteImages(true);
    

    这会允许TCPDF从HTTPS/HTTP地址加载图片资源。

  • 验证图片路径的正确性
    先手动访问你拼接的图片URL(https://sbfasto.com/uploads/signature/'.$signature.'),确认图片能在浏览器正常打开:

    • 检查$signature变量是否完整包含了图片的文件名和后缀(比如abc.png,而不是只有abc)
    • 确认服务器上的图片文件路径和文件名完全匹配,没有拼写错误
  • 修复HTML字符串的语法问题
    你的代码里有两处容易忽略的错误:

    1. 单引号字符串中的变量不会被解析:你直接在单引号里写了$photoofdoc和$final_adminremark,PDF里会显示这些变量名而不是实际值,要改成字符串拼接的形式,比如'.$photoofdoc.'
    2. 图片样式的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 18:13:12