使用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
相关产品推荐
相关产品推荐

