Lat*_*nis 7 css pdf background-image dompdf
到目前为止,我一直在尝试使用这段代码:
<style>
body {
background-image: url(http://example.com/wp-content/uploads/2016/04/myImage.jpg);
background-size: 100%;
background-repeat: no-repeat;
}
</style>
Run Code Online (Sandbox Code Playgroud)
但这不会在生成的 PDF 上呈现图像。
正文中以这种方式格式化的纯图像标签可以正常工作并显示良好:
<img src="/home/example/public_html/wp-content/uploads/2016/04/myImage.jpg">
Run Code Online (Sandbox Code Playgroud)
有人知道为什么吗?我该怎么做才能让背景图像实际显示在生成的 pdf 上?
更新:
我现在尝试对链接的所有可能性进行 base64_encode() ..意味着我已经通过了,
/home/example/public_html/wp-content/uploads/2016/04/myImage.jpg
http://example.com/wp-content/uploads/2016/04/myImage.jpg
/wp-content/uploads/2016/04/myImage.jpg
这些 ^ 组合通过 base64_encode() 函数进行,但它们都无法显示背景图像。
我知道这个问题已经很老了,但总有其他答案的空间。
您可以尝试使用base64。这是代码:
获取图像内容。
$data = file_get_contents('absolute/path/to/background-image.jpg');
Run Code Online (Sandbox Code Playgroud)
将其转换为 base64。
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
Run Code Online (Sandbox Code Playgroud)
在 CSS 中以这种方式使用它。
body { background-image: url(<?php echo $base64 ?>); }
Run Code Online (Sandbox Code Playgroud)
但请记住,背景大小属性无法正常工作,至少就我而言是这样。
这样您就不必知道生成 PDF 的目录的相对性。
..include setup.dompdf.php in your generator script
<?php
$webRoot = '/var/www/html/';
$dompdf = new Dompdf($this->dompdf_options);
$dompdf->setBasePath($webRoot);
?>
Run Code Online (Sandbox Code Playgroud)
然后,您可以从生成 pdf 的任何脚本中引用相对于 Web 根目录的 css 中的任何文件。
<style>
body {
background-image: url(wp-content/uploads/2016/04/myImage.jpg);
}
</style>
Run Code Online (Sandbox Code Playgroud)