我正在使用Kartik's mPDF extension for Yii2从HTML表创建PDF文件。 表格页脚在所有页面中都是可见的,但我希望仅在整个表格的末尾(在最后一页中)显示它。
我该如何实现?我正在使用GridView和ArrayDataProvider创建表。
display: table-row-group;
is not supported by mPDF for tfoot
element,因此在PDF内部不起作用。
答案 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文件在表格之前具有正确的项目计数,并且仅在表格的末尾具有正确样式的“页脚”。
我希望我的解决方案对其他人有帮助。如果您找到了更好的解决方案,请发布答案。