在 php 的 exeoutput 下使用 mpdf 未显示图像

image not showing using mpdf under exeoutput for php

我正在使用 PHP 的 EXEOUTPUT 来使用 Codeigniter 框架创建桌面应用程序。所有网页都显示存储在 MYSQL BLOB 字段中的图像,但只有使用 mpdf 库生成的 pdf 无法显示图像。

当我 运行 在浏览器中使用相同的代码时,会显示图像。即使我使用基础 url 作为基础 http://localhost/applicationname/, image is shown. But when I execute the same code inside Exeoutput for PHP using http://heserver/ 作为基础 url,图像也不会显示。

$config['base_url'] = 'http://heserver/';
//$config['base_url'] = 'http://localhost/applicationname/';

我也试过访问文件夹中上传的图片,也访问不了。 mpdf 库在渲染之前是否需要一些位置来临时渲染图像或存在其他问题?

我已经尝试了以下所有变体:

$top.='<img width="40px" src="logo.png"/>'; //accessing from file system
$top.='<img width="40px" src="data:image/png;base64,'.base64_encode($this->session->userdata('logo')).'"/>'; //accessing from database
$top.='<img width="30px" src="'.exo_getglobalvariable('HEPubStorageLocation', '').'rs\logo.png" />' //accessing through variable provided by exeoutput4php tool

ob_clean();
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="'.$billno.'.pdf"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
include($_SERVER['DOCUMENT_ROOT']."/application/views/admin/mpdf/vendor/autoload.php");
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML($top);
$mpdf->SetJS('this.print();');
$mpdf->Output();
exit;

我也试过绝对虚拟数据文件夹,但没有用。

我已将图像用作外部资源,尝试通过在图像标签中将 subfolder/imagename 作为 src 传递来调用它,但图像不可见。

请提出一些解决方案。

大多数 PDF 库将无法嵌入图像,除非您使用 $_SERVER 超全局引用它们,因为它们不需要图像的 URI (https://example.com/directory/file.jpg) 但 图像的路径 (/home/user/directory/directory/.../file.jpg).

尝试引用您的图像(用于 PDF 导出),例如:

<img src="<?php echo $_SERVER['DOCUMENT_ROOT']; ?>/assets/pdf_images/logo.png" border="0" width="174" height="38">

(这是直接来自我自己的代码,更改路径和属性以适合您自己的)