Dompdf远程图像未以pdf格式显示

Tec*_*e99 13 php image dompdf

在我的服务器上,通过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)
Run Code Online (Sandbox Code Playgroud)

所以为了确定allow_url_fopen的问题,我在localhost中设置false,现在提供与服务器相同的输出.

所以,现在问题是我想用allow_url_fopen = false显示PDF格式的远程图像

  • 我尝试了近5-10种独特的方法来做到这一点.
  • 我试图在php文件中显示图像(通过设置标题),然后在pdf中显示php链接
  • 我试图通过绝对路径显示图像到PHP,但没有任何工作.
  • 我尝试通过curl在一个函数中获取图像然后在一个php文件中显示...但没有运气.

是否有人可以建议我如何以pdf格式显示图像.我一直得到的错误是......

Image not found
http://localhost/dompdf/image.php
Run Code Online (Sandbox Code Playgroud)

Image not found
http://localhost/dompdf/image.jpg
Run Code Online (Sandbox Code Playgroud)

Irf*_*med 35

我有同样的问题, 在实时服务器上找不到dompdf图像

我找到了它的解决方案,你只需要仔细检查图像路径,

考虑您的实时服务器映像路径

<img src="http://www.example.com/public/images/thumb.png">
Run Code Online (Sandbox Code Playgroud)

你只需要改成它,

<img src="public/images/thumb.png">
Run Code Online (Sandbox Code Playgroud)

注意:请确保所有设置与您已完成的设置相同.

我希望这能帮到您.

  • 谢谢。这对我有帮助。顺便说一句,我不得不删除 public。"&lt;img src="images/thumb.png"&gt; " 希望这对其他人有帮助。 (2认同)

the*_*pan 34

尝试

$options = new Options();
$options->set('isRemoteEnabled', true);
$dompdf = new Dompdf($options);
Run Code Online (Sandbox Code Playgroud)

  • 我也必须使用Options类,如下所示:`使用Dompdf\Options;` (5认同)
  • 在我的例子中,`$ dompdf = new DOMPDF(); $ dompdf-> set_option('isRemoteEnabled',TRUE);`足够(即不需要额外的类初始化) (4认同)
  • `set_option()` 已弃用 (2认同)

小智 10

有两件事需要照顾.

  1. 如果使用来自同一服务器的映像,则使用完整目录路径,例 /var/www/html/project_folder/images/logo.jpg

  2. 列表项使用JPEG图像而不是png其他类型.

  • 这个(1)为我工作。非常感谢分享! (2认同)

小智 5

对于加载图像时遇到问题的任何人。上面的解决方案提到使用绝对路径。但除非您设置 chroot 选项,否则这将不起作用。chroot 目录之外的任何文件都不会被加载。设置 chroot 从 wordpress 的 wp 内容目录读取的示例:

$options = new Options();    
$options->set( 'chroot', WP_CONTENT_DIR );
$dompdf = new Dompdf( $options );
Run Code Online (Sandbox Code Playgroud)


pan*_*kaj 5

尝试使用此解决方案来解决您的问题。图像网址是示例。我正在使用Laravel "barryvdh/laravel-dompdf": "^2.0" ,用于生成PDF 的包。

 <img src="data:image/png;base64,{{ base64_encode(file_get_contents( "https://example.com/image/domo.png" )) }}"> 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述