背景图片在dompdf中无法显示

8

由于某些原因,无论我尝试什么方法,dompdf中的背景图像都无法显示。我已经使用了直接的URL,但都没有起作用。有没有熟悉dompdf的人能告诉我需要做什么?

需要注意的是其他图像显示正常,只有背景图像存在问题。以下是其中一张背景图片:

body{
 font-size:15px;
 background:url(bg.jpg) repeat-x bottom left;
}
5个回答

6

使用DOMODF 0.5.1?它可能无法解析背景简写。你可以尝试将通用的背景属性分解为特定的属性:

background-image: url(bg.jpg);
background-repeat: repeat-x;
background-position: bottom left;

我还发现有时必须提供完整的URL(http://example.com/bg.jpg)。

在DOMPDF的那个版本中,这个属性的处理有点小问题。你可以考虑升级到0.6.0代码库(目前为beta 1)。它比以前的版本有许多改进。


由于这个问题已经得到了一些关注,我们进行了跟进。在新版本中,背景简写应该能够被正确解析。目前0.6.x分支有一个稳定的版本(v0.6.1),而后续版本(v0.7.0)则处于测试阶段。 - BrianS

2

嗯,我遇到了同样的问题,在我的本地XAMMP(Windows)中,它按照应该的方式工作,但是当移到实际服务器时,背景图像没有显示出来。

在没有找到解决方案的情况下寻找解决方法之后,最终解决了问题。

这是不起作用的:

body{ font-size:15px; background-image:url(<?php echo getcwd(); ?>/bg.jpg); background-repeat:repeat;}

这个东西非常好用:

body{ font-size:15px; background-image:url(./bg.jpg); background-repeat:repeat; }

希望这可以帮助到您。


1

由于某些奇怪的原因,我遇到了相同的问题 dompdf ver 0.6.1

  1. 在img标签中需要完整的本地路径
  2. 作为背景图片,仅相对路径有效, 但是在style标签中设置background-image无效

希望这可以帮助您


1

看起来DOMPDF支持背景图片,所以我得认为文件路径不正确。

如果您添加 <img src="bg.jpg" alt="" /> ,它会工作吗?

我发现在上一个使用DOMPDF的项目中,我需要将图像文件指向文件系统(而不是相对于webroot的相对路径),并且我必须使用类似于这样的根路径:

<img src="<?php echo DOCROOT; ?>assets/images/bg.jpg" alt="" />

DOCROOT 变为 /users/me/public_html/。在将其发送到 DOMPDF 之前,我用 str_replace() 进行了替换以将 DOCROOT 更改为相对于我的路径的 /,以便测试其作为纯 HTML。


1
直接的img标签可以正常工作,只有背景图片无法正常工作。文件路径是正确的,因为当我查看HTML时,它可以正常工作。但是当我将完全相同的HTML通过DOMPDF呈现时,它就无法正常工作了。 - Refiking
@Refiking,这就是我所说的。有很多次我查看HTML时都没问题,但是一旦需要使用DOMPDF渲染图像,我就需要更改图像路径才能使其正常工作。 - alex
如果是这样,那么为什么我可以正常看到其他图片,但如果它们具有相同的路径,就无法看到背景图片呢? - Refiking

0
在您的配置文件中,将DOMPDF_ENABLE_REMOTE设置为true。
然后在您的页面或样式表中,使用完整路径(即“http://yoursite.com/images/imagename.png”)在src标签或样式表中的url()。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接