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属性があり、正常に機能していますが、2行目に別のパディングが必要です。パディングスタイルは明らかに「td」タグでも「tr」タグでも機能しません。
セルパディングが異なる2つの別々のテーブルで実行できることは知っていますが、かなり間違っているようです。別の方法があるはずです。
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>
ここでの他の答えはオールラウンドパディングを提供しますが、上部または下部にパディングが必要な場合、解決策は設定された高さ/幅の透明なPNGを使用することです。
_private function padding($width,$height){
return '<img src="/imagepath/images/transparent.png" width="'.$width.'" height="'.$height.'">';
}
_
次に、パディングが必要なTD:
$this->padding(82,11)
したがって、テーブルセルに定義された幅が必要です。これは左/右のパディングでも機能する可能性がありますが、試したことはありません。