首页 文章

mPDF - 仅显示一次表格页脚(tfoot)

提问于
浏览
0

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

我怎样才能做到这一点?我正在使用GridViewArrayDataProvider来创建表 .

display: table-row-group; is not supported by mPDF for tfoot element因此不在PDF内部工作 .

1 回答

  • 0

    我已经找到了一个需要更改表的解决方案 .

    而不是使用 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文件在表格之前具有正确的项目计数,并且仅在表格的最末端正确设置了“页脚”样式 .

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

相关问题