Laravel9 PDFを表示する方法

Laravel/Mpdfをインストール

composer require carlos-meneses/laravel-mpdf

コントローラー作成

PdfController.phpを追加

<?php

namespace App\Http\Controllers\User;

use App\Http\Controllers\User\UserController;
use PDF;

class PdfController extends UserController
{
    public function viewPdf()
    {
        $data = [
            'name' => 'ララベル',  // PDFに渡したいパラメータ
        ];
        $pdf = PDF::loadView('pdf.document', $data);  // blade名

        return $pdf->stream('laravel.pdf'); //生成されるファイル名
    }
}

ルートを作成

web.phpに以下を追記

Route::get('/pdf', [App\Http\Controllers\User\PdfController::class,'viewPdf']);

PDF設定

config/pdf.phpを追加

<?php

return [
    'mode'                 => '',
    'format'               => 'A4',
    'default_font_size'    => '12',
    'default_font'         => 'sans-serif',
    'margin_left'          => 10,
    'margin_right'         => 10,
    'margin_top'           => 10,
    'margin_bottom'        => 10,
    'margin_header'        => 0,
    'margin_footer'        => 0,
    'orientation'          => 'P',
    'title'                => 'Laravel mPDF',
    'author'               => '',
    'watermark'            => '',
    'show_watermark'       => false,
    'watermark_font'       => 'sans-serif',
    'display_mode'         => 'fullpage',
    'watermark_text_alpha' => 0.1,
    'auto_language_detection'  => true,
    'temp_dir'               => rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR),
    'pdfa'          => false,
    'pdfaauto'      => false,
    'custom_font_dir' => base_path('resources/fonts/'),
    'custom_font_data' => [
        'ipag' => [
        'R'  => 'ipag.ttf',
        ],
    ],
];

Bladeを追加

resources/views/pdf/document.blade.phpとして以下の内容を保存

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Laravel PDF出力</title>
</head>
<body>
Hello World!!こんにちは!<br>
{{ $name }}さん
</body>
</html>

http://xxxx/public/pdfにアクセスするとPDFが表示される

Laravel PDF表示

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です