Как создать таблицу Dynami c на MPDF? - PullRequest
1 голос
/ 15 апреля 2020

Я должен сгенерировать таблицу с заданным массивом, который является Dynami c. Я хочу иметь 3 <td> в каждом ряду. Я думал добавить новую строку, когда значение счетчика равно 3, но не знаю, чтобы поместить значения второй строки внутри. Как мне построить логи c для этого?

    public function mpdf_output($array)
{
    $mpdf = new \Mpdf\Mpdf(['format' => 'A4-L']);

    $counter = 0;

    $mpdf->WriteHTML('<table style="width:100%"><tr>');

        foreach($array as $barcode)
        {
            $mpdf->WriteHTML('<td><p style="float:left;">code</p>');
            $mpdf->WriteHTML('<barcode code="'.$barcode['code'].'" type="C128B" class="barcode" />');
            $mpdf->WriteHTML('<p>'.$barcode['img'].'</p></td>');
            $counter++;

            if($counter == 3)
            {
                $mpdf->WriteHTML('Counter restarted');
                $counter = 0;
            }
        }
    $mpdf->WriteHTML('</tr></table>');

    $mpdf->Output();
}

1 Ответ

2 голосов
/ 16 апреля 2020

Как прокомментировал Parito sh, вам нужно будет передать полную разметку <table> методу mPDFs WriteHTML для правильной обработки. Тем не менее, похоже, что вы просто хотите использовать макет из трех столбцов в PDF. В таком случае я бы выбрал гораздо более простое решение float:

$html = '';

foreach($array as $barcode)
{
    $html .= '<div style="float: left; width: 33%;">code<barcode code="'.$barcode['code'].'" type="C128B" class="barcode" />' . $barcode['img'] .'</div>');        
}

$mpdf->WriteHTML($html);
...