Как создать таблицу HTML TCPDF с переменными прокладками строк - программирование
Подтвердить что ты не робот

Как создать таблицу HTML TCPDF с переменными прокладками строк

Я пытаюсь создать HTML-таблицу в TCPDF, с несколькими рядами, имеющими пространство между сетками (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 = '');

Как вы можете видеть, у меня есть атрибут cellpadding в теге table, который работает нормально, но я хочу иметь другое дополнение во второй строке. Стиль заполнения явно не работает над тегами "td" или "tr".

Я знаю, что это можно сделать с помощью двух отдельных таблиц с различными cellpaddings, но это кажется довольно неправильным. Должен быть другой способ.

4b9b3361

Ответ 1

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>

Ответ 2

Вы можете попробовать обернуть его в <div> и дать ему дополнение к нему