Bootstrap не работает внутри pdf

Это мой код контроллера

public function actionPrint_death_certificate1()
    {

        $this->layout   =   'certificate';


        $html   =   $this->render('test');
        require_once(Yii::$app->basePath . "/../vendor/mpdf/mpdf/mpdf.php");
        $mpdf=new mPDF();
        $mpdf->WriteHTML($html);
        $mpdf->Output();

    }

Мой взгляд

<div class="container">
    <div class="row">
        <div class="col-md-6">
        Heading1
        </div>
        <div class="col-md-6">
        Heading2
        </div>
    </div>
</div>

Теперь я получаю PDF-файл с заголовками 1 и 2 в двух разных строках. Бутстрап не работает. Я что-то упускаю?

return $this->render('test');

Когда я попробовал это, он работает, и заголовок 1 и заголовок 2 идут в одной строке. в пдф не работает


person Bloodhound    schedule 14.11.2015    source источник
comment
mPDF имеет ограниченную поддержку css, и скорее всего там не будет работать сетка бутстрапа. Сделайте это по старинке с таблицей: <table><tr><td>Heading1</td><td>Heading2</td></tr></table>.   -  person Beowulfenator    schedule 14.11.2015
comment
это так грустно слышать   -  person Bloodhound    schedule 14.11.2015


Ответы (4)


Из сообщения @Bloodhound - это решение хорошо работает для меня

.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
    border:0;
    padding:0;
}
person Manic Depression    schedule 31.10.2017

Вы можете использовать функцию $mpdf->WriteHtml($stylesheet, 1) для добавления пользовательских таблиц стилей в ваш PDF-файл. Для получения дополнительной информации вы можете проверить эту ссылку http://mpdf1.com/manual/index.php?tid=254

public function actionPrint_death_certificate1()
{
    $this->layout = 'certificate';
    $html = $this->render('test');
    $stylesheet = file_get_contents('style.css');
    require_once(Yii::$app->basePath . "/../vendor/mpdf/mpdf/mpdf.php");
    $mpdf = new mPDF();
    $mpdf->WriteHTML($stylesheet, 1);
    $mpdf->WriteHTML($html);
    $mpdf->Output();
}
person Liz    schedule 20.11.2015
comment
Привет, спасибо за ответ. пожалуйста, проверьте эту ссылку github.com/mpdf/mpdf/issues/66 - person Bloodhound; 20.11.2015

Я разместил проблему в github, и ребята из mpdf сказали, что начальная загрузка не поддерживается внутри mpdf, и вам нужно использовать какой-то собственный стиль. ссылка на Github

person Bloodhound    schedule 30.12.2015

Ребята, я понял, что это вызвано стилями печати фреймворка начальной загрузки.

Добавление этого в таблицу стилей решает проблему для меня :)

@media print {
    @page {
        size: auto;
    }
}

person Ivo Georgiev    schedule 03.02.2020
comment
Здорово, что вы сами нашли правильный ответ! Не могли бы вы также добавить это к вопросу? - person Charnel; 03.02.2020