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

TCPDF数组图片格式化、图标对齐与MultiCell居中问题求助

目标实现效果

修复方案

1. 图标对齐问题

异常原因:

  • 你把Image方法放在MultiCell调用之后,MultiCell执行完会自动换行,光标Y轴已经下移,图标自然和上一行内容错位
  • Image的Y参数传空,没有绑定当前行的Y坐标

修复方法:
循环内先获取当前行的Y坐标,优先输出左侧图标,把图标的Y坐标绑定为当前行Y值,保证和右侧单元格同水平。

2. MultiCell对齐问题

异常原因:

  • 你错误套用了Cell的参数顺序到MultiCell上,导致对齐、换行、填充参数全部传错位置,官方参数当然不生效
  • 没有显式指定垂直居中参数,MultiCell默认垂直居顶

修复方法:
按照MultiCell的官方参数顺序传值,额外指定垂直居中参数为'M'。


修改后完整代码

$pdf->SetXY(65,170);
$pdf->SetFillColor(188,211,156);
$pdf->SetTextColor(83,95,65);

$pdf->Cell(90,7,"رموز العناية",1,1,'C',1);
$pdf->Ln(5);

while($row = $result->fetch_assoc()) { 
    $pdf->SetTextColor(0,0,0);
    // 先获取当前行的Y坐标,保证所有元素对齐
    $currentY = $pdf->GetY();
    // 优先输出左侧图标,绑定当前行Y坐标
    $pdf->Image('./assets/images/textiles_caring/' . $row['photo'], 55 , $currentY, 10 , 10 , '', null );
    // 输出标题单元格,X坐标向右偏移避免覆盖图标
    $pdf->SetX(65);
    $pdf->SetFillColor(173,243,173);
    $pdf->Cell(30,10,$row['title'],1,0,'C',1); 

    $pdf->SetFillColor(233,233,233);
    // 修正MultiCell参数顺序,最后添加垂直居中参数'M'
    $pdf->MultiCell(
        90, 
        10, 
        $row['des'], 
        1, 
        'C', // 水平居中,第5个参数为对齐方式
        1, // 填充,第6个参数
        1, // 换行,第7个参数
        '', 
        '', 
        true, 
        0, 
        false, 
        true, 
        0, 
        'M' // 垂直居中,第15个参数
    );
}

内容的提问来源于stack exchange,提问作者Mohammad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:45:01