CodeIgniter 4, Dompdf и Twig

Я использую Twig в своем проекте CodeIgniter 4. Мне нужно создавать отчеты в формате PDF, и я предоставляю HTML через Twig. Проблема, с которой я столкнулся, заключается в том, что dompdf не получает таблицы стилей, включенные в файл Twig.

Когда я делаю

return $this->response->setBody($this->twig->render('customers/quotation_request.html.twig'));

HTML-код отображается в браузере с правильным стилем; поэтому я знаю, что в том, как я включил таблицы стилей, нет никаких проблем.

Я включил следующие таблицы стилей:

<!DOCTYPE html>
<html lang="en">
<head>
    <!-- Bootstrap Css -->
    <link href="{{ 'css/bootstrap.min.css' | _base_url }}" id="bootstrap-style" rel="stylesheet" type="text/css"/>
    <!-- Icons Css -->
    <link href="{{ 'css/icons.min.css' | _base_url }}" rel="stylesheet" type="text/css"/>
</head>

Вот мой код для создания PDF-файлов:

$dompdf = new Dompdf();
$dompdf->getOptions()->setChroot(ROOTPATH . 'public');
$dompdf->loadHtml($this->twig->render('customers/quotation_request.html.twig'));
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream();

В соответствии с документацией dompdf вам необходимо установить $dompdf->getOptions()->setChroot(-->public folder location here<--); в папку public проекта, чтобы dompdf получил к ней доступ, но этот код, похоже, не работает. PDF-файлы создаются без какого-либо стиля.


person Jolan    schedule 13.11.2020    source источник
comment
включить встроенный CSS   -  person DarkBee    schedule 13.11.2020


Ответы (1)


Используйте встроенный CSS, т.е. внутри тега <a style="color:red">hello</a> или используйте теги стиля

a{
 color:red;
}
</style>

DOMPDF не поддерживает ссылки на файлы css. Вы можете проверить это в официальных документах DOMPDF

person pranav shinde    schedule 19.11.2020