我是 PHP 新手,正在尝试为我的作业构建一个小项目。
我正在尝试使用 PHP(DOMPDF 包)将一些 HTML 转换为 PDF。 HTML 确实包含一些标签来输出本地存储在该项目文件夹中的一些图像。
我目前收到“图像未找到或类型未知”错误,我发现这种情况在尝试执行此操作时很常见。
我做了一些研究并尝试了很多不同的事情,但不幸的是我似乎没有取得任何进展。
有人知道我可能做错了什么吗?
只是我项目中的一个小片段:
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));
?>
图像与index.php文件存储在同一目录中。我使用 XAMPP 作为开发环境。
希望这是正确描述的。谢谢大家并感谢大家的支持!
正如 @KIKOSoftware 在评论中提到的,
src
标签的img
属性可以包含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') . "'>");