我是新手,正在try 为我的任务创建一个小项目.

我正在try 使用PHP(DOMPDF包)将一些HTML转换为PDF.该HTML确实包含一些标记,用于输出本地存储在该项目文件夹中的一些图像.

我目前收到"图像找不到或类型未知"的错误,这是我看到的相当常见的时候,try 这样做.

我已经做了一些研究,并try 了很多不同的东西,但不幸的是,我似乎没有取得任何进展.

有人知道我可能做错了什么吗?

这只是我的项目中的一小段:

Index.php

<?php 

require_once 'packages/dompdf/autoload.inc.php'; 

use Dompdf\Dompdf;

$dompdf = new Dompdf();

$dompdf->loadHtml("<img src='photo.jpeg'>");

$dompdf->setPaper('A4', 'portrait'); 
 
$dompdf->render(); 

$dompdf->stream("test-pdf", array("Attachment" => 0));

?>

The image is stored in the same directory as the Index.php file. I am using XAMPP as a development environment.

希望这个描述是正确的.感谢大家,感谢大家的支持!

推荐答案

正如@KIKOSoftware在 comments 中提到的,img标记的src属性可以包含absolute URI或Base64编码的图像数据.您可以使用下面的帮助器函数来动态生成后者.

function ImageToDataUrl(String $filename) : String {
    if(!file_exists($filename))
        throw new Exception('File not found.');
    
    $mime = mime_content_type($filename);
    if($mime === false) 
        throw new Exception('Illegal MIME type.');

    $raw_data = file_get_contents($filename);
    if(empty($raw_data))
        throw new Exception('File not readable or empty.');
    
    return "data:{$mime};base64," . base64_encode($raw_data);
}

然后,它将按如下方式使用:

$dompdf->loadHtml("<img src='" . ImageToDataUrl('photo.jpeg') . "'>");

Php相关问答推荐

照明\Support\Collection::Filter():参数#1($Callback)的类型必须为?可调用、已给定数组、已调用

WooCommerce在store 页面上显示兼容多语言的产品属性

与会者在WooCommerce中按购物车项目数量自定义 checkout 字段

PHP日期操作,将多个日期输出为格式化字符串

致命错误:未捕获错误:Google\Auth\HttpHandler\HttpHandlerFactory::build()

在特定订单状态更改时自定义WooCommerce订单发货项目

允许在WooCommerce管理员优惠券列表中显示自定义优惠券类型

删除了数组中的值,而不是多个数组

如果为布尔值,则 for each 循环重新启动

如何在汇总表构建器中操作LALAVEL细丝Sum::Make()值

如何按类别过滤自定义帖子类型

PHP -流加密启用服务器切断字节

在个人资料页面上显示个人资料图像

更改特定产品标签的 Woocommerce 产品名称

提交仅包含活动详细信息选项卡表单的主表单

如何在构建 PHP 类别数组树的递归函数中将父面包屑传递给子项?

服务器遇到内部错误或配置错误,无法完成您的请求

如何在 Process facade 中转义特殊字符?

WooCommerce 按 ID 限制产品

如何将在同一台服务器上运行的 2 个 PHP 应用程序与使用公共会话分开