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

使用mPDF渲染含大量表格的长HTML内容时意外生成空白首页的问题求助

使用mPDF渲染含大量表格的长HTML内容时意外生成空白首页的问题求助

各位好,我最近在使用mPDF把HTML转成PDF时碰到了一个棘手的问题:只有当文档内容较多时,生成的PDF会莫名多出一个几乎全空白的首页,短文档渲染就完全正常,没有这个问题。

问题详情

  • 触发条件:仅在HTML包含大量嵌套标签、多段表格和段落的长文档时出现
  • 异常表现:PDF第一页几乎全空,实际内容从第二页开始显示

我的PDF生成代码

private function getMPDF($filename = null) { 
    $mpdf = $this->mpdfInit(); 
    $mpdf->charset_in = 'utf-8'; 
    $mpdf->SetTopMargin(33); 
    $mpdf->WriteHTML($this->html); 
    if ($filename === null) { 
        return $mpdf->Output('', "S"); 
    } else { 
        $mpdf->Output($filename, "F"); 
    } 
}

示例HTML内容(长文档的部分片段)

<table style="width: 700px;" border="0"> 
    <tbody> 
        <tr> 
            <td style="width: 432px;"> 
            </td> 
            <td style="width: 225px; padding-top: 8px;"> 
                <p style="font-size: 13px; font-family: Arial;">Pani<br />[IMIĘ I NAZWISKO]<br />[ADRES]<br />[KOD POCZTOWY] [MIASTO]</p> 
            </td> 
            <td style="width: 43px;"> 
            </td> 
        </tr> 
    </tbody> 
</table> 
<p> 
</p> 
<table style="text-align: justify; width: 700px;" border="0"> 
    <tbody> 
        <tr> 
            <td style="width: 50px;"> 
            </td> 
            <td style="width: 600px;"> 
                <p style="font-size: 13px; font-family: Arial;">[DATA]</p> 
                <p> 
                </p> 
                <p style="font-size: 15px; font-family: Georgia;">Dotyczy zgłoszenia o numerze [NUMER_ZGŁOSZENIA] z dnia [DATA]; przedmiot: [NAZWA_SPRZĘTU]; numer dokumentu: [NUMER_DOKUMENTU].</p> 
                <p> 
                </p> 
                <p> 
                </p> 
                <p style="font-size: 13px; font-family: Arial;">Szanowna Pani,</p> 
                <p> 
                </p> 
                <p style="font-size: 13px; font-family: Arial;">Informujemy, że po analizie dostępnych informacji nie stwierdzono przesłanek do pozytywnego rozpatrzenia zgłoszenia.<br /><br />Na podstawie przeprowadzonych czynności ustalono, że nie wystąpiły okoliczności, które uzasadniałyby dalsze działanie.</p> 
                <br /> 
                <p style="font-size: 13px; font-family: Arial;">Podjęta decyzja wynika z:</p> 
                <p style="font-size: 13px; font-family: Arial;">- informacji zebranych podczas zgłoszenia<br />- analizy technicznej<br /><br />Zgłoszony opis: brak ładowania, pęknięcie plastiku, brak aktywacji systemu. Wskazana data: [DATA].<br /><br />W wyniku analizy technicznej stwierdzono mechaniczne uszkodzenie elementów: <br />- bateria cmos<br />- osłona zawiasów<br /><br /><br />Stwierdzono również, że niektóre elementy uległy naturalnemu zużyciu, co nie stanowi podstawy do dalszego działania w tym zakresie.</p> 
                <p> 
                </p> 
                <p style="font-size: 13px; font-family: Arial;">W związku z powyższym brak jest podstaw do zmiany stanowiska. </p> 
            </td> 
            <td> 
            </td> 
        </tr> 
        <tr> 
            <td style="width: 50px;"> 
            </td> 
            <td style="width: 600px;"> 
                <p style="font-size: 13px; font-family: Arial;"><br />Informujemy o możliwości przekazania sprawy do niezależnych instytucji oraz skorzystania z dostępnych środków odwoławczych. Sprawa może być również rozpatrzona przez sąd właściwy miejscowo zgodnie z obowiązującymi przepisami.</p> 
            </td> 
            <td style="width: 50px;"> 
            </td> 
        </tr> 
        <tr> 
            <td style="width: 50px;"> 
            </td> 
            <td style="vertical-align: top; text-align: justify; width: 600px;"> 
                <p style="font-size: 13px; font-family: Arial;"><br />Sprawy sporne mogą być również rozpatrywane w drodze pozasądowego postępowania przed wyznaczonymi instytucjami, zgodnie z obowiązującymi przepisami prawa.</p> 
            </td> 
            <td style="width: 50px;"> 
            </td> 
        </tr> 
        <tr> 
            <td style="width: 50px;"> 
            </td> 
            <td style="text-align: justify;"> 
                <p style="font-size: 13px; font-family: Arial;">[NAZWA INSTYTUCJI] jest administratorem danych, które są przetwarzane zgodnie z obowiązującymi przepisami. Kontakt z Inspektorem Ochrony Danych możliwy jest za pośrednictwem formularza na stronie [STRONA], pisemnie lub mailowo: iod@[DOMENA].pl. Szczegóły dostępne są również pod numerem telefonu [NUMER].</p> 
                <p style="font-size: 13px; font-family: Arial;"><br /><br />Z wyrazami szacunku</p> 
                <br /> 
                <p style="font-size: 13px; font-family: Arial;">[IMIĘ I NAZWISKO]<br /> 
                    <img src="[ZDJĘCIE]" alt="" width="190" /> <br />Główny Specjalista<br />[DZIAŁ]</p> 
            </td> 
            <td style="width: 50px;"> 
            </td> 
        </tr> 
    </tbody> 
</table>

已尝试的排查

我已经初步检查了HTML内容里的空标签、多余的<p>标签,但问题依然存在。目前还没搞清楚是mPDF的配置问题、分页规则导致,还是HTML结构的隐藏问题。

有没有朋友碰到过类似的情况?或者能给我一些排查方向的建议?非常感谢!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 12:03:09