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が表示される