2

此代码从 html 创建一个 pdf。这是一个例子。如何使第二页的背景图像像第一页一样?

$mpdf = new mPDF('utf-8','A4','8','',10,10,22,22,10,20);
$html = '<div id="for_pdf">
    <h3>some text</h3>
    ...
    <h3>some text</h3>
</div>';
$stylesheet = file_get_contents('./static/css/print.css');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->list_indent_first_level = 0;
$mpdf->WriteHTML($html,2);
$mpdf->Output("$doc_name.pdf",'D');

print.css 文件的一部分:

#for_pdf{
    background-image: url("/static/image/pdf_img/big_logo.gif");
    background-repeat: no-repeat;
    background-position: center;
}
4

1 回答 1

4

我知道这是一个老问题,但解决方案是在 CSS 中使用 @page 选择器。

@page {
    background: url("/static/image/pdf_img/big_logo.gif") 50% 0 no-repeat;
}

*我把你的 CSS 变成了简写,但做同样的事情。

上面的代码应该添加到您的 css 文件或 html 文件中的标签内。

@page 也应该是 css 中的第一个调用,否则 mPDF 将忽略它。

无论您有多少页面,使用 @page 都会对每个页面进行更改。您还可以通过执行“@page :first {}”来做一些更酷的事情,它允许您只为第一页放置自定义设置,然后使用常规 @page 以不同于第一页的方式影响其余部分。

于 2013-07-25T07:19:39.673 回答