【问题标题】:image not showing using mpdf under exeoutput for php图像未显示在 php 的 exeoutput 下使用 mpdf
【发布时间】:2019-07-13 06:07:33
【问题描述】:

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

当我在浏览器中运行相同的代码时,会显示图像。即使我将基本网址用作http://localhost/applicationname/,也会显示图像。但是,当我使用 http://heserver/ 作为基本 url 在 PHP 的 Exeoutput 中执行相同的代码时,不会显示图像。

$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;

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

我已将图像用作外部资源,尝试通过将子文件夹/图像名称作为图像标签中的 src 来调用它,但图像不可见。

请提出一些解决方案。

【问题讨论】:

    标签: php codeigniter pdf desktop-application mpdf


    【解决方案1】:

    大多数 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">
    

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

    【讨论】:

    • 您好,我已将图像上传为 BLOB,但仍然不可见
    • 这样做会让自己面临一系列新问题(如果我理解正确,您将二进制图像存储在表中的 blob 字段中,出于多种原因,这是非常不可取的)。您是否尝试过我在回答中概述的内容?
    猜你喜欢
    • 2018-02-01
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2023-01-04
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多