こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 LaravelでPDFを出力する基本のやり方を解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
Laravelのバージョン | 8.42.1 |
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
PDFを出力するためにlaravel-dompdfというライブラリを使います。
インストールするやり方は、以下の記事をご参考ください。
PDFを出力するやり方を解説
PDF出力を実装するためには
- コントローラー作成と実装
- ルーティング(api.phpまたはweb.php)を設定
- PDF用のビュー
の3つが必要です。
PDFを出力するやり方をサンプルプログラムをまじえて解説します。
コントローラー作成と実装
コントローラー作成と実装の解説をします。
コントローラーを作成するためのコマンドは
1 |
php artisan make:controller 【作成するコントローラーの名前】 |
です。
詳しくはこちらの記事をご参考ください。
以下がPDFサンプルコントローラープログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php namespace App\Http\Controllers; use PDF; class SampleController extends Controller { public function pdf_sample() { $pdf = PDF::loadView('pdf_sample'); return $pdf->download('pdf_sample.pdf'); } } |
このサンプルコントローラーでは、URLにアクセスしたと同時にPDFがダウンロードされるようにしています。
上からPDF関連をピックアップして、解説していきます。
1 |
use PDF; |
のuseはPDF関連の関数を使いたいので宣言しています。
1 |
$pdf = PDF::loadView('pdf_sample'); |
はloadView関数はBladeビューをロードしてHTMLに変換する関数です。
Bladeビューの拡張子「.blade.php」を除いたビュー名を指定すれば、指定したビューがHTMLに変換されます。
1 |
return $pdf->download('pdf_sample.pdf'); |
download関数はユーザーがPDFをダウンロードできるようにする関数です。
引数が指定されている場合、指定された値のPDFがダウンロードできます。
ルーティング(api.phpまたはweb.php)を設定
ルーティング(api.phpまたはweb.php)を設定を解説します。
この記事では「web.php」でルーティングします。
サンプルプログラムは以下です。
1 2 3 4 5 6 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/sample', [SampleController::class, 'pdf_sample']); |
web.phpの概要については、こちらの記事をご参考ください。
PDF用のビュー
PDF用のビューはコントローラーで指定した通り、ファイル名を「pdf_sample.blade.php」とします。
サンプルプログラムは以下です。
1 2 3 4 5 6 7 8 9 10 11 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>title</title> </head> <body> <h1>PDF Sample</h1> <p>Hello World</p> </body> </html> |
ビューの新規作成するときに注意すべきポイントをまとめていますので、こちらご参考ください。
PDF出力を実行し確認する
PDF出力に必要な
- コントローラー作成と実装
- ルーティング(api.phpまたはweb.php)を設定
- PDF用のビュー
の3つができたので、実行し確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/sample/
※コマンドプロンプトに記載されているURL - http://localhost:8000/sample/
どちらかのURLにアクセスすれば、download関数で指定したファイル名のPDFがダウンロードできます。
ダウンロードしたPDFを開いてみると、ビューの通りのPDFが出力できたことが確認できました。
まとめ:PDFを出力してみよう
以上がLaravelでPDFを出力するやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント