为什么边框折叠在 html2pdf 中不起作用?

2022-08-30 20:06:32

我想创建一个带有html表格的pdf,例如:tableEx

所以,我创建了这个html:

<table style="width: 100%; border:2px solid; border-collapse: collapse; padding: 0; margin: 0;">
    <tr style="border-bottom: 1px solid;">
        <th style="border-left: 1px solid; width: 60%;">Ref produit</th>
        <th style="border-left: 1px solid; width: 10%;">Taille</th>
        <th style="border-left: 1px solid; width: 10%;">Quantit�</th>
        <th style="border-left: 1px solid; width: 10%;">Prix net HT</th>
        <th style="border-left: 1px solid; width: 10%;">Montant HT</th>
    </tr>
    <tr>
        <td style="border-left: 1px solid;">BAL100</td>
        <td style="border-left: 1px solid; text-align: center;">S</td>
        <td style="border-left: 1px solid; text-align: center;">20</td>
        <td style="border-left: 1px solid; text-align: center;">22.00</td>
        <td style="border-left: 1px solid; text-align: center;">440</td> 
    </tr>
    <tr>
    .
    .
    .
    </tr>
</table>

pdf 结果是:

enter image description here

边界消失了!

如果我删除该属性,则会出现边框,但结果不合适。border-collapse: collapse;

我在官方论坛(法国帖子)上看到,财产边界崩溃仅适用于标签。所以我不明白为什么我的表没有正确生成。table

有什么想法吗?

这是我的php代码来生成pdf

$html2pdf = new HTML2PDF('P','A4','fr');
$html2pdf->WriteHTML($htmlContent);
$html2pdf->Output($path, 'F');

答案 1

我找到了一个解决方法,如果我用结果替换css属性看起来OK。border-collapse: collapse;cellspacing="0"

<table cellspacing="0" style="width: 100%; border:2px solid;position: relative;">

答案 2

border-collapse: collapse;应该将两个相同的相邻边界合并在一起。在html2pdf中使用它时,您应该设置和属性的样式(作为同一事物),当折叠时将产生单个边框。另外,要防御性地编写此CSS,而不是假设属性继承,您应该在定义边框时从技术上指定它,例如border-leftborder-rightborder-colorborder: 1px solid black;


推荐