2

我正在使用 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) 的单元格渲染顶部边框?

4

5 回答 5

2

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

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

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

于 2014-07-10T18:30:17.060 回答
2

只需将边框添加到表格标签

<table  border="1" cellspacing="0"   >
于 2017-07-04T04:29:24.283 回答
2

另一种解决方法是将 css 属性替换border-collapse: collapse;cellspacing="0"

<table cellspacing="0">

参考

于 2017-06-29T09:26:01.847 回答
1

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

代替边框,在单元格上方添加一个空行以接收边框顶部,并将其单元格着色为黑色,高度为 1px。在应该有边框的每一行之前:

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

- 原来的 -

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"

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

于 2013-09-07T09:21:03.483 回答
1

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

于 2013-09-30T09:03:51.193 回答