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

时间:2016-04-13 15:12:39

标签: 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>

然而,这不会在生成的PDF上呈现图像。

身体中以这种方式格式化的普通图像标签,可以正常显示:

<img src="/home/example/public_html/wp-content/uploads/2016/04/myImage.jpg">

有谁知道这是为什么?我该怎么做才能让背景图像真实地显示在生成的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()函数,但它们都没有用于显示背景图像。

3 个答案:

答案 0 :(得分:2)

更灵活的解决方案

这样您就不必知道生成PDF的目录的相对性。

..include setup.dompdf.php in your generator script

<?php 

    $webRoot = '/var/www/html/';

    $dompdf = new Dompdf($this->dompdf_options);
    $dompdf->setBasePath($webRoot);

?>

然后,您可以从生成pdf的任何脚本中引用相对于Web根目录的css中的任何文件。

<style>
    body {
        background-image: url(wp-content/uploads/2016/04/myImage.jpg);
    }
</style>

答案 1 :(得分:1)

我已经弄明白了。我没有意识到的是,放在一起的html位于我的wordpress主题文件夹的文件夹中,所以为了访问我需要的图像,我需要根据哪里找回几个目录那个html文件在我的文件结构中。我试图从媒体库中访问附加到帖子的图像。

解决方案很简单:

background-image: url(../../uploads/2016/04/myImage.jpg);

答案 2 :(得分:0)

我知道这个问题很旧,但是总是有其他答案的空间。

您可以尝试使用base64。这是代码:

获取图像内容。

$data = file_get_contents('absolute/path/to/background-image.jpg');

将其转换为base64。

$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);

在CSS中以这种方式使用它。

body { background-image: url(<?php echo $base64 ?>); }

但是请记住,background-size属性无法正常工作,至少就我所试。