【问题标题】:HTML2PDF Image Error Impossible to Load the ImageHTML2PDF 图像错误无法加载图像
【发布时间】:2023-12-02 16:10:01
【问题描述】:

我正在使用 HTML2PDF,我正在尝试显示图像,但我不断收到此错误:

错误 n°6 文件:/var/www/vhosts/default-domain.com/httpdocs/html2pdf_v4.03/html2pdf.class.php 线路:1321

无法加载图像 /student/questions 3rd/images/small1324538668Number Lines 5.JPG

有人可以帮我解决这个问题吗?我已经为此苦苦挣扎了一段时间。

这是我的html代码。

     <img src="/student/questions 3rd/images/small1324538668Number Lines 5.JPG" />

这里是检查它如何工作的网站。

http://www.domain.com/html2pdf_v4.03/examples/Test.php

请帮忙!!

谢谢

【问题讨论】:

  • 当我在你的服务器上检查图像时,它不是那个 url 所说的位置

标签: php html pdf converter html2pdf


【解决方案1】:

在使用 HTML2PDF 时,您必须以这种方式提供图像的完整路径

   http://domain/path/to/image 

或者你可以给student/questions 3rd/images/small1324538668Number Lines 5.JPG,因为任何脚本都是在位于根目录的index.php的基础上运行的,所以你必须从根目录给出图像路径。

【讨论】:

  • 我完全明白。我今晚会检查一下,如果它有效,我会告诉你。
  • 图片数据是否会嵌入到生成的pdf中?
  • 这条路径是什么意思?学生/问题 3rd/images/small1324538668Number Lines 5.JPG
  • 使用来自服务器根目录的完整物理路径对我有用:/student /questions 3rd/images/small1324538668Number Lines 5.JPG" />
【解决方案2】:

当服务器中未启用 allow_url_fopen 时,HTML2PDF 无法在图像 src 上加载图像。还有另一个解决方案无权启用allow_url_fopen。解决方案是使用图像 base64 编码数据作为图像源。示例代码如下。

<?php
 $path =  'directory/example.jpg';
 $type = pathinfo($path, PATHINFO_EXTENSION);
 $data = file_get_contents($path);
 $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
?>
<img src="<?php echo $base64 ?>">

【讨论】:

    【解决方案3】:

    在我的例子中,我的 image src 属性是一个绝对路径,但它仍然不起作用:

    <img src="http://example.com/image.jpg"/>
    

    我必须在服务器上启用allow_url_fopen

    【讨论】:

    • 这对我来说也是正确的答案。我在 php.ini 中启用了 allow_url_fopen
    最近更新 更多