Мне нужно генерировать счета с MPDF, и все они будут иметь заголовок, нижний колонтитул и одно и то же фоновое изображение, которое должно охватить всю страницу. Использование изображений): < /p>
1- Использование внешнего файла CSS и инъекции в качестве CSS Content < /strong> < /p>
$pdf = new mPDF('es', 'A4', 0, '', 5, 5, 0, 0, 0, 0, 'P');
$pdf->useSubstitutions=false;
$pdf->setAutoTopMargin = 'stretch';
$pdf->SetDisplayMode('fullpage');
$css = file_get_contents('./styles.css');
$cabecera = file_get_contents('./header.html');
$cuerpo = file_get_contents('./body.html');
$pie = file_get_contents('./footer.html');
$pdf->SetHTMLHeader($cabecera);
$pdf->SetHTMLFooter($pie);
$pdf->WriteHTML($css, 1);
$pdf->WriteHTML($cuerpo, 2);
$pdf->Output();
< /code>
и файл styles.css: < /p>
body {
background-image: url('background_300dpi.png') ;
}
< /code>
Это бросает ошибку тайм-аута.
Если я использую фон изображения с низким разрешением, он работает, но он разрушает мой макет.$pdf = new mPDF('es', 'A4', 0, '', 5, 5, 0, 0, 0, 0, 'P');
$pdf->useSubstitutions=false;
$pdf->setAutoTopMargin = 'stretch';
$pdf->SetDisplayMode('fullpage');
$cabecera = file_get_contents('./cabecera.html');
$cuerpo = file_get_contents('./cuerpo.html');
$pie = file_get_contents('./pie.html');
$pdf->SetHTMLHeader($cabecera);
$pdf->SetHTMLFooter($pie);
$pdf->SetDefaultBodyCSS('background', "url('background_300dpi.png')");
$pdf->SetDefaultBodyCSS('background-image-resize', 6);
$pdf->WriteHTML($cuerpo, 2);
$pdf->Output();
< /code>
Ошибка тайм -аута тоже.
это работает, если я использую изображение с низким разрешением. But this is not a good solution to print, because there are small letters in the letterhead which is included in the background image.
3 - Trying to use images (the background image is split into a top letterhead and a bottom image) instead of an only background image, and setting margin constraints to false
$pdf = new mPDF('es', 'A4', 0, '', 5, 5, 0, 0, 0, 0, 'P');
$pdf->useSubstitutions=false;
$pdf->setAutoTopMargin = 'stretch';
$pdf->SetDisplayMode('fullpage');
$cabecera = file_get_contents('./cabecera.html');
$cuerpo = file_get_contents('./cuerpo.html');
$pie = file_get_contents('./pie.html');
$pdf->SetHTMLHeader($cabecera);
$pdf->SetHTMLFooter($pie);
$pdf->WriteHTML($cuerpo, 2);
$pdf->Image('miramar/background_top.png', 0, 0, 210, 28.5, 'png', '', true, false);
$pdf->Image('miramar/background_bottom.png', 0, 259, 210, 38, 'png', '', true, false, false, false);
$pdf->Output();
< /code>
В этом случае нет тайм -аута, но изображение нижнего колонтитула делает его контентом, включенным в нижний колонтитул. < /p>
У кого -нибудь есть идея о том, как его достичь? Я мог бы использовать фоновое изображение в качестве файла SVG.
Подробнее здесь: https://stackoverflow.com/questions/502 ... -full-page