tcpdf(html2pdf)未正确生成表格边框

时间:2013-09-07 08:00:03

标签: html css tcpdf html2pdf

我使用html2pdf生成pdf文件(即使用tcpdf库,_tcpdf_5.0.002)。不幸的是,我无法正确生成表格边框。

require_once('inc/html2pdf/html2pdf.class.php');
$html2pdf = new HTML2PDF('P','A4','en');
$pdf_output = '';

// HEADER
$pdf_output .='<page backtop="8mm" backbottom="8mm" backleft="10mm" backright="10mm" style="font-size: 11px;font-family:freeserif;">';
$pdf_output .= '<style> 
    table {
        border-collapse:collapse;
    }
    </style>';

 $pdf_output.='<table>';
 $pdf_output.= '<tr><td style="border-top: 1px solid black;">A</td></tr>';
 $pdf_output.= '<tr><td style="border-top: 1px solid black;">A</td></tr>';
 $pdf_output.= '<tr><td style="">A</td></tr>';
 $pdf_output.= '<tr><td style="border-top: 1px solid black;">A</td></tr>';
 $pdf_output.='</table>';
 $pdf_output .='</page>';
 $html2pdf->WriteHTML($pdf_output);
 $attachment= $html2pdf->Output('attachment.pdf', 'S');
 ...

它不显示单元格的顶部边框。它仅显示第一行的顶部边框,而不显示其他行的顶部边框。我已经简化了这个html标记用于测试目的(实际上它不会在一个单元格中呈现“A”字母,内容在不同的列中,但顶部边框也不呈现)。

如何使用html2pdf(tcpdf)渲染单元格的上边框?

5 个答案:

答案 0 :(得分:2)

另一种解决方法是用border-collapse: collapse;

替换css属性cellspacing="0"
<table cellspacing="0">

Reference

答案 1 :(得分:2)

只需为表格标签添加边框

i=90000
while ((i<=100000)); do
    ...
    ((i+=20));
done

答案 2 :(得分:1)

解决方法是使用<hr>标记。

答案 3 :(得分:1)

这个快速简便的解决方案,请像这样使用

$pdf_output.= '<tr><td style="border-top-color:#000000;border-top-width:1px;border-top-style:solid;">A</td></tr>';

我希望这会很好用,因为我在pdf生成中使用它,它对我来说效果很好。

答案 4 :(得分:0)

原始解决方案不起作用,将其留在最后并尝试其他方法:

不要使用边框,而是在单元格上方添加一个空行以接收border-top,并将其单元格设置为黑色,高度为1px。 在应该有边框的每一行之前:

<tr><td style="background-color:#000;height:1px;font-size:0px;">&nbps;</td></tr>

- ORIGINAL -

html2pdf的html样式还不是很强大......我之前偶然发现了类似的问题,如果你想要像边框顶部这样的花哨造型,我建议你使用除桌子之外的其他元素......如果你可以的话快乐使用,很好。否则,改为

$pdf_output.= '<div><span style="border-top: 1px solid black;">A</span></div>';

我没有测试过,因为我不是在开发PC上,但你可以做到

style="border-top: 1px solid black;display:inline-block;width:50px"

使您的跨度具有相同的宽度,看起来像是一张桌子。