Ahs*_*san 4 php dompdf laravel laravel-5.4
使用dompdf软件包在Laravel 5.4中下载PDF后,出现错误“找不到图像或类型未知”。这是方法
public function pdf()
{
$users = User::get();
$pdf = PDF::loadView('pdf', compact('users'));
return $pdf->download('Users.pdf');
}
Run Code Online (Sandbox Code Playgroud)
我的检视档案
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PDF</title>
</head>
<body>
<div class="container">
<div class="row">
@foreach ($users as $user)
<img src="public/storage/images/{{ $user->profile_pic }}" alt="" style="width: 150px; height: 150px;">
@endforeach
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用静态图片名称(如下所示),则可以使用
<img src="public/storage/images/image_1.jpg" alt="" style="width: 150px; height: 150px;">
Run Code Online (Sandbox Code Playgroud)
但不适用于动态名称。
请提出我该如何解决。
ham*_*Dev 15
就我而言。它可以在 Windows 上运行,但不能在 ubuntu 20 上运行。
我改为
<img src="data:image/png;base64,{{ base64_encode(file_get_contents(public_path('/img/logo.png'))) }}">
Run Code Online (Sandbox Code Playgroud)
效果很好
小智 11
public function pdf()
{
$users = User::get();
$pdf = PDF::loadView('pdf', compact('users'));
$pdf->getDomPDF()->setHttpContext(
stream_context_create([
'ssl' => [
'allow_self_signed'=> TRUE,
'verify_peer' => FALSE,
'verify_peer_name' => FALSE,
]
])
);
return $pdf->download('Users.pdf');
}
Run Code Online (Sandbox Code Playgroud)
根据这个问题,您必须使用完整的服务器路径 尝试:
<img src="{{ public_path("storage/images/".$user->profile_pic) }}" alt="" style="width: 150px; height: 150px;">
Run Code Online (Sandbox Code Playgroud)
假设该图像存储在您的公共目录中。
小智 8
我已经解决了:
1-调用 DomPDF 库:
require_once ($_SERVER['DOCUMENT_ROOT'] . "/mi/LiquidacionesSueldo/include/dompdf/autoload.inc.php");
ob_start();
Run Code Online (Sandbox Code Playgroud)
2- 生成 HTML 文件,我使用返回简单 HTML 表格的函数来完成此操作:
get_dias_goce_sueldo($_POST['run'],$_POST['dvr'],$_POST['cantidad_dias'],$_POST['desde'],$_POST['hasta'],$_POST['am_pm']);
Run Code Online (Sandbox Code Playgroud)
3-现在,您必须初始化 DomPDF 对象,记下我设置的所有选项:
$dompdf=new Dompdf\Dompdf();
$dompdf->set_option('isHtml5ParserEnabled', true);
$dompdf->set_option('isRemoteEnabled', true);
$dompdf->loadHtml(ob_get_clean());
$dompdf->set_paper('letter', 'portrait');
$dompdf->render();
$dompdf->stream("Solicitud_de_permiso_con_goce_de_sueldo.pdf", array('Attachment'=>1));
Run Code Online (Sandbox Code Playgroud)
注意:在我的函数中,在 HTML 表中,我使用完整路径调用图像,如下所示:
<img src="'.$_SERVER['DOCUMENT_ROOT'].'/mi/DiasAdministrativos/logo.png">
Run Code Online (Sandbox Code Playgroud)
仅此而已,我希望这对我有用。
| 归档时间: |
|
| 查看次数: |
5064 次 |
| 最近记录: |