我正在尝试在TCPDF中创建一个HTML表,其中几行在行(填充)之间具有更大的空间,而其他行具有更小的填充。
$html = '<table border="0" cellpadding="6">
<tr>
<td style="width="52%">' . lang('ticket_name') . '</td>
<td style="width="18%">' . lang('ticket_price') . '</td>
<td style="width="12%">' . lang('quantity') . '</td>
<td style="width="18%">' . lang('total') . '</td>
</tr>
<tr>
<td style="padding: 10px">' . $item['name'] . '</td>
<td style="padding: 10px">' . $item['unit_price'] . '</td>
<td style="padding: 10px">' . $item['quantity'] . '</td>
<td style="padding: 10px">' . $item['row_total'] . '</td>
</tr>
<tr>
<td style="text-align:right" colspan="3">' . lang('price_basis') . ': </td>
<td>' . $totals['total_before_tax'] . '</td>
</tr>
<tr>
<td style="text-align:right" colspan="3">' . 'Ukupni popust' . ': </td>
<td>' . $totals['total_discount'] . '</td>
</tr>
<tr>
<td style="text-align:right" colspan="3">' . 'Sveukupno' . ': </td>
<td>' . $totals['grand_total'] . '</td>
</tr>
</table>';
$pdf->writeHTML($html, $linebreak = true, $fill = false, $reseth = true, $cell = false, $align = '');
正如你所看到的,我在table标签中有一个cellpadding属性,它工作正常,但我想在第二行有一个不同的填充。 填充样式显然不适用于'td'或'tr'标签。
我知道可以使用两个具有不同cellpaddings的独立表来完成,但似乎非常错误。必须有另一种方式。
答案 0 :(得分:6)
TCPDF不支持所有CSS属性,例如TCPDF不支持padding
和margin
属性。
您可以通过内部表格模拟填充:
<tr>
<td>
<table><tr>
<td style="width:10px;"></td>
<td>' . $item['name'] . '</td>
<td style="width:10px;"></td>
</tr></table>
</td>
</tr>
或者您可以为每一行使用不同cellpadding
的不同表格:
<table border="0" cellpadding="6">
<tr>
<td>' . lang('ticket_name') . '</td>
<td>' . lang('ticket_price') . '</td>
<td>' . lang('quantity') . '</td>
<td>' . lang('total') . '</td>
</tr>
</table>
<table border="0" cellpadding="5">
<tr>
<td>' . $item['name'] . '</td>
<td>' . $item['unit_price'] . '</td>
<td>' . $item['quantity'] . '</td>
<td>' . $item['row_total'] . '</td>
</tr>
</table>
答案 1 :(得分:0)
这里的另一个答案是全面填充,但是如果您需要在顶部或底部填充,解决方案是使用具有设置的高度/宽度的透明PNG。
private function padding($width,$height){
return '<img src="/imagepath/images/transparent.png" width="'.$width.'" height="'.$height.'">';
}
然后在TD中需要填充:
$this->padding(82,11)
因此,您需要在表格单元格上定义一个宽度。这也可能适用于左/右填充,但还没有尝试过。