Печать с помощью yii2-pdf

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Паяц
Сообщения: 40
Зарегистрирован: 2012.05.22, 20:09
Откуда: Москва, Россия

Печать с помощью yii2-pdf

Сообщение Паяц »

Коллеги, приветствую.

Подскажите, пожалуйста, кто разобрался с расширением https://github.com/robregonm/yii2-pdf

Делаю приложение на базе advanced шаблона.
Добавил во frontend/config/main.php объявление компонента как указано в инструкции.
В существующий контроллер ActController добавил код из инструкции же (с моим добавлением $id и findModel в рендере):

Код: Выделить всё

public function actionPdf($id)
    {
        Yii::$app->response->format = 'pdf';

        // Rotate the page
        Yii::$container->set(Yii::$app->response->formatters['pdf']['class'], [
            'format' => [216, 356],
            'orientation' => 'Landscape',
            'beforeRender' => function($mpdf, $data) {
                
            },
        ]);

//        $this->layout = '//print';
        return $this->render('view', [
            'model' => $this->findModel($id),
        ]);
    }
При переходе на страницу /index.php?r=act/pdf&id=2 выдаётся ошибка: MpdfException: WriteHTML() requires $html be an integer, float, string, boolean or an object with the __toString() magic method. in .../vendor/mpdf/mpdf/mpdf.php:15884

Пробовал добавлять print.php в layouts, но результат тот же.
Либо я что-то лишнее оставляю в print.php (а я оставлял по сути копию main.php), либо что-то не так во view, либо ещё что-то...

Подскажите, пожалуйста, что ещё необходимо сделать, чтобы вывести страницу на печать?
Паяц
Сообщения: 40
Зарегистрирован: 2012.05.22, 20:09
Откуда: Москва, Россия

Re: Печать с помощью yii2-pdf

Сообщение Паяц »

Нашёл в чём было дело. Последний блок надо вызывать таким образом:

Код: Выделить всё

        return $this->renderPartial('view', [
            'model' => $this->findModel($id),
        ]);
Ответить