mPDF-仅显示表脚(英尺)一次

时间:2018-07-03 08:34:51

标签: php yii2 mpdf kartik-v table-footer

我正在使用Kartik's mPDF extension for Yii2从HTML表创建PDF文件。 表格页脚在所有页面中都是可见的,但我希望仅在整个表格的末尾(在最后一页中)显示它。

我该如何实现?我正在使用GridViewArrayDataProvider创建表。

display: table-row-group; is not supported by mPDF for tfoot element,因此在PDF内部不起作用。

1 个答案:

答案 0 :(得分: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文件在表格之前具有正确的项目计数,并且仅在表格的末尾具有正确样式的“页脚”。

我希望我的解决方案对其他人有帮助。如果您找到了更好的解决方案,请发布答案。