Laravel PDF生成插件轻松生成PDF
阅读 (5115) 2018-07-16 17:15:52
DOMPDF Wrapper for Laravel 5 插件可直接将字符串、文件或视图保存为PDF并提供下载
安装 Installation
Laravel 5.x
更新composer后,将ServiceProvider添加到config/app.php中的providers数组
Barryvdh\DomPDF\ServiceProvider::class,
您可以选择使用Facade来缩短代码。将此添加到facades:
'PDF' => Barryvdh\DomPDF\Facade::class,
Lumen
更新composer后,在注册提供者中添加以下行 bootstrap/app.php
$app->register(\Barryvdh\DomPDF\ServiceProvider::class);
要更改配置,请将配置文件复制到config文件夹并在bootstrap/app.php
以下位置启用它:
$app->configure('dompdf');
使用 Using
您可以创建新的DOMPDF实例并加载HTML字符串,文件或视图名称。您可以将其保存为文件或流(在浏览器中显示)或下载。
$pdf = App::make('dompdf.wrapper');
$pdf->loadHTML('<h1>Test</h1>');
return $pdf->stream();
或使用 facade:
$pdf = PDF::loadView('pdf.invoice', $data);
return $pdf->download('invoice.pdf');
也可以使用静态方法
return PDF::loadFile(public_path().'/myfile.html')->save('/path-to/my_stored_file.pdf')->stream('download.pdf');
您可以更改方向和纸张大小,并隐藏或显示错误(默认情况下,启用调试时会显示错误)
PDF::loadHTML($html)->setPaper('a4', 'landscape')->setWarnings(false)->save('myfile.pdf')
如果您需要将输出作为字符串,则可以使用output()函数获取呈现的PDF,您可以自己保存/输出它。
使用php artisan vendor:publish
创建位于一个配置文件config/dompdf.php
,这将允许您定义的本地配置更改一些设置(默认纸张等)。您还可以使用ConfigProvider设置某些键。
配置 Configuration
默认配置设置已设置config/dompdf.php
。将此文件复制到您自己的config目录以修改值。您可以使用以下命令迁移配置:
php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"
在使用此命令生成pdf之前,您仍然可以更改代码中的dompdf选项:
PDF::setOptions(['dpi' => 150, 'defaultFont' => 'sans-serif']);
可用选项及其默认值:
- rootDir: "{app_directory}/vendor/dompdf/dompdf"
- tempDir: "/tmp" (available in config/dompdf.php)
- fontDir: "{app_directory}/storage/fonts/" (available in config/dompdf.php)
- fontCache: "{app_directory}/storage/fonts/" (available in config/dompdf.php)
- chroot: "{app_directory}" (available in config/dompdf.php)
- logOutputFile: "/tmp/log.htm"
- defaultMediaType: "screen" (available in config/dompdf.php)
- defaultPaperSize: "a4" (available in config/dompdf.php)
- defaultFont: "serif" (available in config/dompdf.php)
- dpi: 96 (available in config/dompdf.php)
- fontHeightRatio: 1.1 (available in config/dompdf.php)
- isPhpEnabled: false (available in config/dompdf.php)
- isRemoteEnabled: true (available in config/dompdf.php)
- isJavascriptEnabled: true (available in config/dompdf.php)
- isHtml5ParserEnabled: false (available in config/dompdf.php)
- isFontSubsettingEnabled: false (available in config/dompdf.php)
- debugPng: false
- debugKeepTemp: false
- debugCss: false
- debugLayout: false
- debugLayoutLines: true
- debugLayoutBlocks: true
- debugLayoutInline: true
- debugLayoutPaddingBox: true
- pdfBackend: "CPDF" (available in config/dompdf.php)
- pdflibLicense: ""
- adminUsername: "user"
- adminPassword: "password"
提示:支持 UTF-8
在模板中,设置UTF-8 Metatag:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
提示:分页符
您可以使用CSS page-break-before
/ page-break-after
属性创建新页面。
<style>
.page-break {
page-break-after: always;
}
</style>
<h1>Page 1</h1>
<div class="page-break"></div>
<h1>Page 2</h1>
更新于:2018-07-16 17:17:59