mPDF — показывать нижний колонтитул (tfoot) только один раз

Я создаю файл PDF из таблицы HTML, используя Расширение mPDF Картика для Yii2.
Нижний колонтитул таблицы виден на всех страницах, но я хочу, чтобы он отображался только в конце всей таблицы (на последней странице).

Как мне этого добиться? я использую Вид сетки а также ArrayDataProvider создать таблицу.

display: table-row-group; не поддерживается mPDF для tfoot элемент и, следовательно, не работает внутри PDF.

0

Решение

Я пришел к решению, которое требует изменения таблицы.

Вместо того, чтобы использовать tfoot Элемент для моего нижнего колонтитула Я просто добавляю одну строку с данными нижнего колонтитула внутри tbody и добавив стиль к этому.
Поскольку mPDF не поддерживает :last-child Селектор, я должен был использовать поддерживаемый :nth-child() селектор:

$pdf->cssInline = 'tbody tr:nth-child(' . $row_count . ') td { font-weight: bold; }';

Я поставил $row_count после добавления дополнительной строки с помощью вызова count() на массиве данных. Чтобы отобразить правильное общее количество элементов в GridView, я добавил пользовательский макет с $row_count значение минус 1:

$pdf->content = GridView::widget([
'dataProvider' => $dataProvider,
'columns' => $this->columns,
'showFooter' => false,
'layout' => '
<div>' . Yii::t('app', 'Total <strong>{count}</strong> items.', ['count' => ($this->row_count - 1)]) . '</div>
{items}
'
]);

Полученный файл PDF имеет правильное количество элементов перед таблицей и правильно оформлен «нижний колонтитул» только в самом конце таблицы.

Я надеюсь, что мое решение полезно для кого-то еще. Пожалуйста, оставьте ответ, если вы нашли лучшее решение.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]