peripteraptos/laravel-pdf

使用此mPDF包装器在Laravel中生成PDF文件。

v5.0.4 2022-03-02 15:56 UTC

README

使用此mPDF包装器,您可以在Laravel内部轻松地从HTML生成PDF文档。

安装

在您的composer.json中添加此包,或者通过运行以下命令进行安装

composer require niklasravnsborg/laravel-pdf

现在,您应该通过以下命令将包的配置文件发布到您的配置目录

php artisan vendor:publish

基本用法

要使用Laravel PDF,请将以下内容添加到您的控制器中。您可以将数据传递到位于/resources/views的视图中。

use PDF;

function generate_pdf() {
	$data = [
		'foo' => 'bar'
	];
	$pdf = PDF::loadView('pdf.document', $data);
	return $pdf->stream('document.pdf');
}

其他方法

您还可以在pdf对象上使用以下方法

output():将PDF作为字符串输出。
save($filename):将PDF保存到文件
download($filename):使PDF可供用户下载。
stream($filename):返回一个响应,以在浏览器中显示PDF。

配置

如果您已发布配置文件,您可以在config/pdf.php文件中更改默认设置

return [
	'format'           => 'A4', // See https://mpdf.github.io/paging/page-size-orientation.html
	'author'           => 'John Doe',
	'subject'          => 'This Document will explain the whole universe.',
	'keywords'         => 'PDF, Laravel, Package, Peace', // Separate values with comma
	'creator'          => 'Laravel Pdf',
	'display_mode'     => 'fullpage'
];

要按文件覆盖此配置,请在初始化调用中使用第四个参数,如下所示

PDF::loadView('pdf', $data, [], [
  'format' => 'A5-L'
])->save($pdfFilePath);

页眉和页脚

如果您希望在每一页上都有页眉和页脚,请按如下方式将它们添加到您的<body>标签中

<htmlpageheader name="page-header">
	Your Header Content
</htmlpageheader>

<htmlpagefooter name="page-footer">
	Your Footer Content
</htmlpagefooter>

现在,您只需要使用CSS中的名称属性定义它们

@page {
	header: page-header;
	footer: page-footer;
}

在页眉和页脚中,可以使用{PAGENO}来显示页码。

有关SetProtection()的更多信息,请参阅此处:https://mpdf.github.io/reference/mpdf-functions/setprotection.html

测试

要使用测试套件,您需要在本地PHP上安装一些扩展和二进制文件。在macOS上,您可以按如下方式安装它们

brew install imagemagick ghostscript
pecl install imagick

许可

Laravel PDF是开源软件,许可协议为MIT许可