I'm trying to create an HTML table in TCPDF, with few rows having grater space between rows (padding), and others having smaller padding.
$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 = '');
As you can see, I have a cellpadding attribute in the table tag, which is working fine, but I want to have a different padding in the second row. Padding style obviously isn't working on 'td' nor on 'tr' tags.
I know it can be done with two separate tables with different cellpaddings, but it seems pretty wrong. There must be another way.
To set cell padding in HTML, use the style attribute. The style attribute specifies an inline style for an element. The attribute is used with the HTML <table> tag, with the CSS property padding.
HTML Table - Cell Padding. Cell padding is the space between the cell edges and the cell content. By default the padding is set to 0.
TCPDF doesn't support all CSS attributes, for example TCPDF doesn't support padding
and margin
attributes.
You can simulate paddings by inner table:
<tr>
<td>
<table><tr>
<td style="width:10px;"></td>
<td>' . $item['name'] . '</td>
<td style="width:10px;"></td>
</tr></table>
</td>
</tr>
Or you can use different tables with different cellpadding
for each row:
<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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With