![見出し画像](https://assets.st-note.com/production/uploads/images/85837750/rectangle_large_type_2_067e618cf97699e009eec4879650d465.png?width=800)
Laravel8でpdfを作成してみる
簡単にpdfの作成ができたのメモ
まずはライブラリインストール
composer require barryvdh/laravel-dompdf
composer.jsonにこちらが設定されていることを確認してください。
ドキュメント
githubにいろいろ書いてあるので、公式もぜひ見てください。
フォントを準備
日本語を出力するためには日本語フォントが必要です。
こちらからさくっとダウンロードして storage/fonts に入れてください。
configの設定を確認
config/dompdf.phpで条件を設定できます。
こちらのコマンドを打って、configファイルを作成してください。
php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"
詳細は公式を見ていただければと思います。
多すぎて書ききれぬのです。
ビューの準備
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ticket</title>
<style>
@font-face {
font-family: ipag;
font-style: normal;
font-weight: normal;
src: url('{{ storage_path('fonts/ipag.ttf') }}');
}
@font-face {
font-family: ipag;
font-style: bold;
font-weight: bold;
src: url('{{ storage_path('fonts/ZenKakuGothicNew-Bold.ttf') }}');
}
body {
font-family: ipag;
margin: 0px;
}
</style>
</head>
<body>
<div class="container">
<div class="content">
<div>
<b>テストテストテスト</b>
</div>
<div>
ああああああああああ
</div>
</div>
</div>
</body>
</html>
適当に準備してくださいました。
@font-faceでは通常と太字を出力するために2つ設定されています。
使ってみる!
use PDF;
public function exsample()
{
$filename = 'filename.pdf';
$pdf = PDF::loadView('view_file_name');
return $pdf->stream($filename);
}
これで出力されます。
簡単ですね!
setPaperメソッドを使えば大きさも変えられます。
$pdf = PDF::loadView('view_file_name')->setPaper('a4', 'landscape');
大きさはカスタムで指定することができます。
$customPaper = [0, 0 , 100, 200];
$pdf = PDF::loadView('view_file_name')->setPaper($customPaper, 'landscape');
最後に
簡単にpdfができるのは嬉しいですね。
帳票とか出さないといけないなど多々あるかと思いますので、ぜひ使ってみてはいかがでしょうか。
また、便利なライブラリがあれば書いていきます。
この記事が気に入ったらサポートをしてみませんか?