在我的服务器上,通过dompdf生成的pdf没有显示图像。因为它们是远程网址图像。(本地图像工作正常)然后我才知道它需要一些设置来渲染远程图像。
allow_url_fopen = true => i can not as server control is not in my hand.(and no one will suggest to do this due to security reasons)
read/write access to the DOMPDF_TEMP_DIR (already have this)
DOMPDF_ENABLE_REMOTE = true (already have this)
所以为了确定allow_url_fopen的问题,我在localhost中设置false,现在提供与服务器相同的输出。
所以,现在问题是我想用allow_url_fopen = false显示PDF格式的远程图像
是否有人可以建议我如何以pdf格式显示图像。我一直得到的错误是......
Image not found
http://localhost/dompdf/image.php
和
Image not found
http://localhost/dompdf/image.jpg
我有同样的问题,dompdf image not found on live server
我找到了它的解决方案,你只需要仔细检查图像路径,
考虑您的实时服务器映像路径
<img src="http://www.example.com/public/images/thumb.png">
你只需要改成它,
<img src="public/images/thumb.png">
注意:请确保所有设置与您已完成的设置相同。
我希望这能帮到您。
转到dompdf_config.inc.php文件并将变量DOMPDF_ENABLE_REMOTE设置为TRUE ...
尝试
$options = new Options();
$options->set('isRemoteEnabled', true);
$dompdf = new Dompdf($options);
有两件事需要照顾。
/var/www/html/project_folder/images/logo.jpg
JPEG
图像而不是png
或其他类型。我想你可以加上这个
private function change_url_image($data, $url) {
$str = $url; //for example "http://localhost/yoursite/";
$str2 = str_replace($str, "", $data);
return $str2;
}
更改图像的网址
您是否可以在用于打开PDF的计算机上的Web浏览器中访问这些URL?如果没有,PDF阅读器也将无法使用。
我怀疑“localhost”域意味着这些URL只能从生成PDF的Web服务器中看到。你需要输出像http://example.com/dompdf/image.jpg这样的网址
(要解决此问题,请记住,有充分的理由不使用远程图像。例如,如果查看器未连接到互联网,则文档看起来会很糟糕。是否可以直接将图像嵌入到文献?)
dompdf目前没有区分本地域和远程域的机制,因此任何启动http:// ...的URL都被视为远程。此外,任何使用基于PHP的中介(如pic.php)的图像都不能使用本地路径,因为除非您通过Web服务器,否则不会解析PHP。
这是一个艰难的前景,但您的页面是动态生成的。所以我看到两个选择:
由于您已经使用curl获得了图像,因此您应该能够实现其中任何一个。
我面临同样的问题,而我也在“dompdf / dompdf_config.inc”中设置了“DOMPDF_ENABLE_REMOTE => true”,但没有奏效。
有一件事对我有用,将images / css的src从绝对更改为相对和完成的事情。在这种情况下,我的服务器上有所有的css / images。
万一有人和我有同样的问题:
<style>
中添加了所有CSS内联,而不是通过<link>
加载<style>
在<head>
而不是<body>
我使用了这行代码
<img src="{{ url('/frontened/images/jeevan-green-logo.png') }}" >
它工作正常。谢谢。