为什么边界崩溃在html2pdf中不起作用?

R3t*_*tep 21 html css php pdf-generation html2pdf

我想用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>
Run Code Online (Sandbox Code Playgroud)

pdf结果是:

在此输入图像描述

边界消失了!

如果我删除属性border-collapse: collapse;边框出现但结果不合适.

我在官方论坛(法语帖子)上看到,属性border-collapse仅适用于标签table.所以我不明白为什么我的桌子没有正确生成.

任何的想法?

这是我生成pdf的php代码

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

R3t*_*tep 10

我发现了一个解决办法,如果我更换CSS属性border-collapse: collapse;cellspacing="0"结果看起来OK.

<table cellspacing="0" style="width: 100%; border:2px solid;position: relative;">
Run Code Online (Sandbox Code Playgroud)


and*_*wgu 6

border-collapse: collapse;应该将两个相同的相邻边界合并在一起.在html2pdf中使用它时,你应该设置border-leftborder-right属性(作为相同的东西),当折叠时会生成一个边框.另外,要防御性地编写这个CSS,而不是假设border-color属性继承,你应该在定义边框时从技术上指定它,例如border: 1px solid black;