Я использую 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-файлы создаются без какого-либо стиля.