如何在 DOMPDF 生成器上显示背景图像

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() 函数进行,但它们都无法显示背景图像。

Drk*_*ien 8

我知道这个问题已经很老了,但总有其他答案的空间。

您可以尝试使用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)

但请记住,背景大小属性无法正常工作,至少就我而言是这样。


Art*_*tan 3

更灵活的解决方案

这样您就不必知道生成 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)