繁体   English   中英

如何将刀片内容转换为 PDF?

[英]How I can convert a blade content into PDF?

在我的 Laravel 项目中,我有以下 myview.blade.php 内容:

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="UTF-8">
    <title>{{ __('menu.title') }}</title>
</head>
<body>
 {{__('content') }}
</body>

但不是将其呈现为 http 响应,而是希望能够从中生成 pdf 文件。 你知道我怎么做吗?

您将需要使用 HTML 到 PDF 库(例如 DOMPDF)来进行 HTML -> PDF 的实际转换

https://github.com/dompdf/dompdf

要从刀片视图中获取 HTML,您可以执行以下操作:

$html = view('path/to/view', ['vars' => 'hello'])->render();

我使用了许多解决方案,包括 DOMPDF,但平均而言,WKHTMLTOPDF 生成的输出比 DOMPDF 好得多。

WKHTMLTOPDF 更精确地遵循 CSS 规则。

嗯,wkhtmltopdf 是一个命令行程序,它接受一个 html 文件作为参数,所以你只需要安装它就可以了。 它有适用于 Linux 和 Windows 的软件包。

到代码

从您的视图中生成所需的 html,如下所示:

$html = view('my_view', $arr);

将 HTML 写入临时文件:

$temp_file = tempnam(sys_get_temp_dir(), 'pdf_');
file_put_contents($temp_file, $html);

在 wkhtmltopdf 上运行 exec():

$pdf_file = $temp_file . '.pdf';
exec('wkhtmltopdf ' . $temp_file . ' ' . $pdf_file);

下载您的$pdf_file

要开心。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM