dompdf和img标签,图片无法显示

7
以下是在调用 $dompdf->render() 和 $dompdf->output() 之前的 HTML 代码:
<img src="http://www.example.com/images/Logo.png" />

当在浏览器中查看、打印或以HTML格式发送电子邮件时,所有其他发票都能正常显示图像。但是,在我们的应用程序中点击“生成PDF”后,它会将发票呈现为PDF格式,但是标志丢失了。我已经添加了调试代码,让其将发送给render()的原始HTML电子邮件给我,并对其进行检查,看起来没问题。

有人知道dompdf为什么无法显示此图像吗?


3
你使用的是哪个版本的DOMPDF?我记不清具体的限制了,但是我相信0.5.1版本在处理PNG的alpha透明度方面存在问题。这在这里被提到:http://drupal.org/node/558170#comment-1981550 - BrianS
哇,谢谢!就是这样。唉! - Kevin
3个回答

16
一个想法:如果您提供的图像使用完整的URI,则被视为外部图像,因此必须将常量DOMPDF_ENABLE_REMOTE设置为true。

1
在DomPDF的0.7版本中,不再使用常量。请改用以下代码: $dompdf = new Dompdf(array('enable_remote' => true)); - v.nivuahc

3

服务器路径似乎无法工作。我将再试一次。DOMPDF_ENABLE_REMOTE也设置为TRUE。 - Kevin
网站是否从/home/user/public_html提供服务有关系吗? - Kevin
@Kevin,我很久以前曾经使用过fpdf,但从未在pdf生成中使用过图像。我在搜索时找到了这个。手册中没有提到吗?如果src参数期望服务器路径,我认为/home/user/public_html不会有影响。 - Sandeepan Nath
您应该能够使用完整的URL或绝对/相对路径。完整的URL需要满足以下几个条件:1)DOMPDF_ENABLE_REMOTE为true;2)Web服务器具有对DOMPDF_TEMP_DIR指定的目录的读/写访问权限;3)allow_url_fopen为true。 - BrianS

0

我的.png图片神秘地无法加载,但在渲染之前输出html时会显示。

我能够使用这个进行调试

global $_dompdf_show_warnings;
$_dompdf_show_warnings = true;      
\Dompdf\Image\Cache::clear(true);
$options = new \Dompdf\Options(['debugPng' => true,'isRemoteEnabled'=>true);
$dompdf->setOptions($options);

输出文件位于 C:/Users/USERNAME/AppData/Local/Temp/log.htm

但是错误显示了权限错误。

我的烦恼的真正原因是在 src = "" 开始处有一个简单的空白。


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