Yo lo pongo así y funcionando…
CONFIG/MAIN:
Saco aquí la configuración del componente y los estilos para la vista…
// Pdf
use kartik\mpdf\Pdf;
...
// N. setup Krajee Pdf component
'pdf' => [
'class' => Pdf::classname(),
'format' => Pdf::FORMAT_A4,
'orientation' => Pdf::ORIENT_PORTRAIT,
'destination' => Pdf::DEST_BROWSER,
'mode' => Pdf::MODE_CORE, // leaner size using standard fonts
'marginLeft' => 30, //mm
'marginRight' => 15, //mm
'marginTop' => 20, //mm
'marginBottom' => 20, //mm
'marginHeader' => 10, //mm
'marginFooter' => 10, //mm
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css', // media print
//'cssInline' => '.kv-heading-1{font-size:18px}',
'cssInline' => '
h1 {font-size: 30px; margin-top: 10px; margin-bottom: 10px;}
h2 {font-size: 20px; margin-top: 5px; margin-bottom: 5px;}
h3 {font-size: 18px; margin-top: 5px; margin-bottom: 5px;}
h4 {font-size: 16px; margin-top: 5px; margin-bottom: 5px;}
p {font-size: 12px; margin: 0; padding: 0; }
.pdf-tab-1{margin-left: 50px;}
.pdf-tab-2{margin-left: 100px;}
.pdf-tab-3{margin-left: 150px;}
.jumbotron .box-sig {width: 25%; float: right; background: #FFF; padding: 3px; text-align: center;}
.jumbotron p {font-size: 35px;}
.jumbotron h1 {display: block; width: 100%; text-align: center;}
.table {background: transparent;}
.table-bordered {background: transparent;}
.bra-ficha th {width: 20%; padding: 3px 6px; font-size: 12px; background: transparent;}
.bra-ficha td {padding: 3px 6px; font-size: 13px; background: transparent;}
.bra-list td {padding: 0 5px; font-size: 11px; line-height: 11px; background: transparent;}
.bra-nombre {font-weight: bold; font-size: 14px; }
.bra-imagen {max-height: 50px; }
',
// refer settings section for all configuration options
],
CONTROLLER:
Ejemplo pasando parámetros a la vista, uso de header, footer, marca de agua…
Los títulos, cabecera y demás los tengo como parámentros en CONFIG/PARAMS como puedes ver…
public function actionPdf()
{
$model1 = Nivel1::getNivel1All();
$titulo = "Listado Nivel1";
// PDF ----------------------------------------------------------------------------------------
Yii::$app->response->format = \yii\web\Response::FORMAT_RAW; // Primera linea FORMAT_RAW imprescindible
// Definido component pdf en /common/config/main con parametros generales
$pdf = Yii::$app->pdf;
$pdf->content = $this->renderPartial('_pdf', ['model1' => $model1, 'titulo' => $titulo]);
$pdf->options = [
'title' => Yii::$app->params['pdfCabecera'],
'subject' => Yii::$app->params['pdfCabecera'].'-'.Yii::$app->params['pdfSubcabecera'].'-'.$titulo,
// 'showWatermarkText'=>true,
'showWatermarkImage' => true,
'watermarkImgBehind' => true,
];
$pdf->methods = [
'SetHeader' => [Yii::$app->params['pdfCabecera'].'|'.Yii::$app->params['pdfSubcabecera'].'|'.$titulo],
'SetFooter' => [Yii::$app->params['pdfAutor'].'|'.Yii::$app->params['pdfFecha'].'|Página {PAGENO}'],
// 'SetWatermarkText'=>['Draft'],
// 'D': default i.e. original size of image - may depend on img_dpi, 'P':Resize to fit the full page size, keeping aspect ratio, 'F': Resize to fit the print-area (frame) respecting current page margins, keeping aspect ratio
'SetWatermarkImage'=>[Yii::$app->params['pdfWatermarkAbsUrl'], 0.5, 'D', array(30,80) ],
];
$pdf->filename = $titulo.' ('.Yii::$app->params['pdfFecha'].').pdf';
return $pdf->render();
// ------------------------------------------------------------------------------------------------
}
VIEW _pdf:
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model1 backend\models\Nivel1 */
/* @var $titulo */
?>
<div class="jumbotron">
<h1><?= Html::encode($titulo);?></h1>
</div>
<?php
foreach ($model1 as $m1) {
?>
<h2> <?= $m1->orden.'. '.$m1->nombre; ?> </h2>
<?php } ?>