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

Laravel Dompdf转换器出现除零错误异常(Table.php第173行)求助

解决Laravel Dompdf的Table.php除零错误

我碰到过好几次Dompdf这个除零错误了,大概率是你的HTML表格布局有问题,导致Dompdf在计算单元格宽度时触发了除以零的逻辑。结合你提供的代码和报错位置,给你几个具体的解决思路:

1. 先补全残缺的HTML标签

你提供的HTML最后是未闭合的</ta...,这会直接导致Dompdf解析混乱,布局计算逻辑出错。先把所有<table>、<tr>、<td>标签都完整闭合,这是最基础的前提。

2. 调整表格宽度设置,避免计算冲突

Dompdf的表格宽度计算逻辑比较敏感,你当前的结构是外层width="100%"的表格嵌套了固定宽度700px的内层表格,在某些渲染场景下可能会出现宽度计算为0的情况:

  • 试试把内层表格的width="700"改成width="100%",配合max-width:700px的样式,这样更兼容不同的容器宽度;
  • 给最外层表格添加min-width:700px的样式,确保容器不会被压缩到0宽度;
  • 检查所有单元格的width属性或style,有没有设置为0的情况,或者百分比总和超过100%的冲突。

3. 给表格添加最小内边距

你现在所有表格都设了cellpadding="0" cellspacing="0",极端的零内边距有时候会让Dompdf的布局计算出现零值。试试把cellpadding改成1,或者在style里加padding:1px,给计算留一点缓冲空间。

4. 升级Dompdf版本

这个除零错误在旧版本的Dompdf里是高频问题,如果你用的是比较老的版本,赶紧通过Composer升级到最新稳定版:

composer require barryvdh/laravel-dompdf:^2.0

新版本修复了很多布局计算的bug,大概率能直接解决这个问题。

5. 临时修复(不推荐长期用)

如果上面的方法都暂时没效果,可以临时修改Dompdf的Table.php文件第173行附近的代码,给除法加个非零判断:

// 找到类似这样的除法代码
// $width = $total / $count;
// 修改为:
$width = $count != 0 ? $total / $count : 0;

这只是临时绕过错误,还是建议从HTML结构和版本升级上彻底解决。

修改后的示例HTML

补全标签并调整设置后的代码参考:

<table border="0" cellpadding="1" cellspacing="0" width="100%" style="min-width:700px;">
  <tr>
    <td>
      <table align="center" border="0" cellpadding="1" cellspacing="0" width="100%" style="max-width:700px;background:white;padding: 10px;">
        <tr>
          <td align="center">
            <table align="center" border="0" cellpadding="1" cellspacing="0" width="100%">
              <tr>
                <td style="color: brown;font-size: 18px;font-weight: bold;">Walkover Web Solutions Private Limited</td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:38:09