
Расширение от kartik-v - https://github.com/kartik-v/yii2-mpdf позволяет генерировать pdf файл из html кода страницы. Этот файл удобно сохранить или распечатать.
Так как я всё ещё лишён composer и приходится вручную устанавливать компоузеровские расширения, важный момент - нужно отдельно установить класс mpdf и прописать в файл vendor/composer/autoload_classmap.php
return array( 'mPDF' => $vendorDir.'/kartik-v/mpdf/mpdf.php', );
Вот код моей функции в контроллере. Мне надо для каждой статьи иметь возможность сформировать на лету PDF, поэтому передаю в функцию $id.
public function actionMpdfBlog($id) { $this->layout = 'pdf'; Yii::$app->response->format = \yii\web\Response::FORMAT_RAW; $headers = Yii::$app->response->headers; $headers->add('Content-Type', 'application/pdf'); $model = $this->findModel($id); //$model = $this->findModel(); $pdf = new Pdf([ 'mode' => Pdf::MODE_UTF8, // leaner size using standard fonts 'content' => $this->render('viewpdf', ['model'=>$model]), 'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css', 'cssInline' => '.img-circle {border-radius: 50%;}', 'options' => [ 'title' => $model->title, 'subject' => 'PDF' ], 'methods' => [ 'SetHeader' => ['<img src="/images/inspire2_logo_20.png" class="img-circle"> Школа брейк данса INSPIRE||inspire2.ru'], 'SetFooter' => ['|{PAGENO}|'], ] ]); return $pdf->render(); }
Вызывается она кнопкой в виде страницы
<?php echo Html::a('<img class="left" width="30px" src="/images/pdf.png" /> Распечатать .PDF', ['/blog/mpdf-blog?id='.$model->id], [ 'class'=>'btn btn-default', 'target'=>'_blank', 'data-toggle'=>'tooltip', 'title'=>'Will open the generated PDF file in a new window' ]);?>
13 марта 2016, Программирование, веб-кодинг, Расширения, виджеты / Метки: pdf mpdf
16 января 2023

Yii2-user сменить текущего пользователя или переход на другого пользователя (SwitchIdentity)
Impersonate User / Become another user
12 декабря 2022

Yii2: uclead MultipleInput + kartik DepDrop
Настраиваем множественные поля с выпадающим списком