kartik GridView Yii2 - 如何配置 PDF 的导出配置(Header、页脚、标题)

kartik GridView Yii2 - How To Configure the Export Configuration For PDFs (Header, Footer, Title)

我正在尝试找出一种在导出时修改 PDF 的 header 的方法。

现在 header 说的是 Yii2 Grid Export (PDF) Grid Export。

这是我用来尝试修改它的代码:

            'exportConfig' => [
                GridView::PDF => [
                    'label' => 'PDF',
                    'filename' => 'Preceptors',
                    'title' => 'Preceptors',                        
                    'options' => ['title' => 'Preceptor List','author' => 'Me'],                        
                ],
                GridView::CSV => [
                    'label' => 'CSV',
                    'filename' => 'Preceptors',
                    'options' => ['title' => 'Preceptor List'],                                             
                ],
            ],

            'export' => [
                'PDF' => [
                    'options' => [
                        'title' => 'Preceptors',
                        'subject' => 'Preceptors',
                        'author' => 'NYCSPrep CIMS',
                        'keywords' => 'NYCSPrep, preceptors, pdf'
                    ]
                ],
            ],

只需扩展这个精美的 kartik 网格 (http://demos.krajee.com/grid) 并重写 运行() 并初始化 Export(),例如:

namespace common\widgets;

use Yii;
use yii\web\JsExpression;
use yii\helpers\ArrayHelper;


class GridView extends \kartik\grid\GridView
{
    protected function initExport() {
        ... copy original and set whatever you like
    }

    public function run() {
        parent::run();
        $this->initExport();        
    }

}

当然可以根据需要设置命名空间。

您必须自定义您的 GridView

 GridView::PDF => [
    'filename' => 'Preceptors',
    'config' => [
      'methods' => [
        'SetHeader' => [
          ['odd' => $pdfHeader, 'even' => $pdfHeader]
        ],
        'SetFooter' => [
          ['odd' => $pdfFooter, 'even' => $pdfFooter]
        ],
      ],
      'options' => [
        'title' => 'Preceptors',
        'subject' => 'Preceptors',
        'keywords' => 'pdf, preceptors, export, other, keywords, here'
      ],
    ]
  ],

其中 $pdfHeader 和 $pdfFooter

$pdfHeader = [
    'L'    => [
        'content' => 'LEFT CONTENT (HEAD)',
    ],
    'C'    => [
        'content'     => 'CENTER CONTENT (HEAD)',
        'font-size'   => 10,
        'font-style'  => 'B',
        'font-family' => 'arial',
        'color'       => '#333333',
    ],
    'R'    => [
        'content' => 'RIGHT CONTENT (HEAD)',
    ],
    'line' => true,
];

$pdfFooter = [
    'L'    => [
        'content'     => 'LEFT CONTENT (FOOTER)',
        'font-size'   => 10,
        'color'       => '#333333',
        'font-family' => 'arial',
    ],
    'C'    => [
        'content' => 'CENTER CONTENT (FOOTER)',
    ],
    'R'    => [
        'content'     => 'RIGHT CONTENT (FOOTER)',
        'font-size'   => 10,
        'color'       => '#333333',
        'font-family' => 'arial',
    ],
    'line' => true,
];

查看mPdf文档