Laravel PDF:PDF发电机,用于Laravel 5.x | 6.x | 7.x | 8.x | 9.x
使用此PDF包装器轻松地从HTML生成PDF文档。
内容
- Installation Guide
- Configuration
- Basic Usage
- Headers and Footers
- Included Fonts
- Custom Fonts
- Set Protection
- Documentation
安装指南
在您的composer.json
中需要此软件包或通过运行:
composer require zanysoft/laravel-pdf
要开始使用Laravel,请将服务提供商和立面添加到您的config/app.php
:
'providers' => [
// ...
ZanySoft\LaravelPDF\PdfServiceProvider::class
]
'aliases' => [
// ...
'PDF' => ZanySoft\LaravelPDF\Facades\PDF::class
]
配置
config/pdf.php
中设置了默认配置设置。将此文件复制到您自己的配置目录以修改值。您可以使用此命令发布配置:
php artisan vendor:publish --provider="ZanySoft\LaravelPDF\PdfServiceProvider"
基本用法
使用Laravel PDF将类似的内容添加到您的一个控制器中。您可以将数据传递到/resources/views
中的视图。
use PDF;
function generate_pdf() {
$data = [
'foo' => 'bar'
];
$pdf = PDF::::Make();
$pdf->loadView('pdf.document', $data);
return $pdf->stream('document.pdf');
}
或
use ZanySoft\LaravelPDF\PDF;
function generate_pdf() {
$data = [
'foo' => 'bar'
];
$pdf = new PDF();
$pdf->loadView('pdf.document', $data);
return $pdf->stream('document.pdf');
}
如果您想从HTML内容生成:
$content = "Hello this is first pdf file."
$pdf->loadHTML($content);
return $pdf->stream('document.pdf');
如果要从文件生成:
$file = "file.txt"
$pdf->loadFile($file);
return $pdf->stream('document.pdf');
如果要下载PDF文件:
return $pdf->embed('document.pdf');
如果要将PDF保存到服务器:
return $pdf->save('with-complete-path/document.pdf');
如果要添加PDF文件作为电子邮件的附件:
return $pdf->embed('document.pdf');
标题和页脚
如果您想在每个页面上出现标题和页脚,请将它们添加到您的<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}
显示页码。
包括字体
默认情况下您可以使用所有字体shipped with mPDF。
自定义字体
您可以在生成的PDF中使用自己的字体。 TTF文件必须位于一个文件夹中,例如/resources/fonts/
。将其添加到您的配置文件(/config/pdf.php
):
return [
'custom_font_path' => base_path('/resources/fonts/'), // don't forget the trailing slash!
];
,然后:
$font_data = array(
'examplefont' => [
'R' => 'ExampleFont-Regular.ttf', // regular font
'B' => 'ExampleFont-Bold.ttf', // optional: bold font
'I' => 'ExampleFont-Italic.ttf', // optional: italic font
'BI' => 'ExampleFont-Bold-Italic.ttf', // optional: bold-italic font
]
// ...add as many as you want.
);
$pdf->addCustomFont($font_data, true);
// If your font file is unicode and "OpenType Layout" then set true. Default value is false.
现在您可以在CSS中使用字体:
body {
font-family: 'examplefont', sans-serif;
}
设置保护
要设置保护,您只需调用SetProtection()
方法并通过权限,用户密码和所有者密码传递数组。
密码是可选的。
有一些权限:'copy'
,'print'
,'modify'
,'annot-forms'
,'fill-forms'
,'extract'
,'assemble'
,'print-highres'
。
use PDF;
function generate_pdf() {
$data = [
'foo' => 'bar'
];
$pdf = PDF::Make();
$pdf->SetProtection(['copy', 'print'], 'user_pass', 'owner_pass')
$pdf->loadView('pdf.document', $data);
return $pdf->stream('document.pdf');
}
在此处查找有关SetProtection()
的更多信息:https://mpdf.github.io/reference/mpdf-functions/setprotection.html
文档
访问此链接以获取更多选项和设置:https://mpdf.github.io/