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

如何将数组中各值单独以PDF格式打印?(含PHP代码及列对齐问题)

解决PDF打印中金额列对齐问题

你的核心问题是表格行结构不匹配:原来的代码把所有左侧描述行单独生成<tr>,再把所有金额<td>堆在一起,导致每行的描述和金额无法一一对应,自然错位。

重构PHP代码(修复结构问题)

把两个循环合并成一个,每次循环生成包含「描述列」和「金额列」的完整表格行,这样每行的内容和金额就会对应对齐:

$ps_table_rows = "";
foreach ($this->submissionPSDirectCost as $ps) {
    // 拼接左侧描述内容
    $ps_desc = implode(" ", [
        "<b>" . ($ps->ps_type == 0 ? "Salary" : "Honoraria") . "</b>",
        "<br>",
        $ps->ps_quantity,
        $ps->title,
        "at",
        $ps->salary,
        "/Month x",
        $ps->ps_num_duration,
        $ps->mode_payment,
    ]);
    
    // 生成完整的表格行:左侧描述列 + 右侧金额列
    $ps_table_rows .= "<tr>
        <td colspan=\"1\">{$ps_desc}</td>
        <td colspan=\"1\">{$ps->amount}</td>
    </tr>";
}

修改HTML调用

现在直接在表格中输出重构后的$ps_table_rows即可:

<table>
    <!-- 表头部分,示例:<tr><th>Item Details</th><th>Total approved budget</th></tr> -->
    <?php echo $ps_table_rows; ?>
</table>

额外PDF排版优化建议

为了让PDF里的表格更规整,可以给表格添加基础样式:

table {
    width: 100%;
    border-collapse: collapse;
}
td, th {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: left;
}
th {
    background-color: #f2f2f2;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:26:16