mPDF - 仅显示一次 table 页脚 (tfoot)
mPDF - Show table footer (tfoot) only once
我正在使用 Kartik's mPDF extension for Yii2 从 HTML table 创建 PDF 文件。
table 页脚在所有页面中都可见,但我希望它只显示在整个 table 的末尾(在最后一页)。
我怎样才能做到这一点?我正在使用 GridView and ArrayDataProvider 创建 table.
display: table-row-group;
is not supported by mPDF for tfoot
element 因此在 PDF 中不起作用。
我找到了一个解决方案,需要更改 table。
我没有为页脚使用 tfoot
元素,而是在 tbody
中添加一行带有页脚数据并为其添加样式。
由于 mPDF 不支持 :last-child
选择器,我不得不使用支持的 :nth-child()
选择器:
$pdf->cssInline = 'tbody tr:nth-child(' . $row_count . ') td { font-weight: bold; }';
我通过在数据数组上调用 count()
添加附加行后设置 $row_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 文件在 table 之前具有正确的项目计数,并且仅在 table 的末尾具有正确的样式 "footer"。
我希望我的解决方案对其他人有帮助。如果您找到更好的解决方案,请post回答。
我正在使用 Kartik's mPDF extension for Yii2 从 HTML table 创建 PDF 文件。 table 页脚在所有页面中都可见,但我希望它只显示在整个 table 的末尾(在最后一页)。
我怎样才能做到这一点?我正在使用 GridView and ArrayDataProvider 创建 table.
display: table-row-group;
is not supported by mPDF for tfoot
element 因此在 PDF 中不起作用。
我找到了一个解决方案,需要更改 table。
我没有为页脚使用 tfoot
元素,而是在 tbody
中添加一行带有页脚数据并为其添加样式。
由于 mPDF 不支持 :last-child
选择器,我不得不使用支持的 :nth-child()
选择器:
$pdf->cssInline = 'tbody tr:nth-child(' . $row_count . ') td { font-weight: bold; }';
我通过在数据数组上调用 count()
添加附加行后设置 $row_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 文件在 table 之前具有正确的项目计数,并且仅在 table 的末尾具有正确的样式 "footer"。
我希望我的解决方案对其他人有帮助。如果您找到更好的解决方案,请post回答。