This is an example of a PDF document generated using Laravel and DomPDF.
PDF ドキュメントの作成は、Web アプリケーション、特に請求書、領収書、証明書、チケット、およびさまざまなレポートを生成する場合の一般的な要件です。この包括的なチュートリアルでは、Laravel と DomPDF を使用して画像と CSS を含む PDF ドキュメントを生成する方法について詳しく説明します。構成オプション、設計上の考慮事項、出力サイズ、パフォーマンス、データベース クエリについて説明します。さらに、改ページの処理、base64 を使用した画像のロードなどに関するヒントやコツについても説明します。
始める前に、以下がインストールされていることを確認してください:
DomPDF は、HTML コンテンツから PDF ドキュメントを生成できる人気の PHP ライブラリです。 CSS スタイル、画像、さまざまな構成オプションをサポートしています。 DomPDF を Laravel と統合することで、Blade テンプレートと Laravel の強力な機能を使用して洗練された PDF ドキュメントを簡単に作成できます。
その他の一般的な PDF ライブラリには、TCPDF、FPDF、Snappy などがあります。
ただし、DomPDF は、統合の容易さと堅牢な機能セットにより広く使用されています。
このチュートリアルでは、Laravel プロジェクトのセットアップ、DomPDF の構成、PDF 生成を処理するコントローラーの作成、PDF コンテンツ用の Blade テンプレートの設計、ルートの追加、パフォーマンスの最適化のプロセスを順を追って説明します。また、高度な構成オプションについても説明し、高品質の PDF ドキュメントを生成するためのヒントやテクニックも提供します。
このチュートリアルは、Laravel と PHP の基本を理解していることを前提としています。 Laravel を初めて使用する場合は、Laravel の公式ドキュメントを読んでフレームワークに慣れることを検討してください。それ以外の場合は、Laravel ブートキャンプに従って Laravel を使い始めることができます。
まず、新しい Laravel プロジェクトをまだ作成していない場合は作成するか、既存のプロジェクトを使用します。もちろん、すでに Laravel プロジェクトがある場合は、この手順をスキップできます。
composer create-project --prefer-dist laravel/laravel pdf-tutorial cd pdf-tutorial
次に、DomPDF をインストールします:
composer require barryvdh/laravel-dompdf
構成ファイルを公開します:
php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"
config/dompdf.php ファイルを開きます。構成ファイルには、PDF 出力をカスタマイズするためのさまざまなオプションが含まれています。ここでは、デフォルトの用紙サイズ、向き、フォントなどを含むさまざまなオプションを設定できます。
'default_paper_size' => 'a4',
'orientation' => 'portrait',
'default_font' => 'serif',
PDF 生成を処理するコントローラーを作成します:
php artisan make:controller PDFController
app/Http/Controllers/PDFController.php に次のコードを追加します:
'Laravel PDF Example', 'date' => date('m/d/Y'), ]; $pdf = PDF::loadView('myPDF', $data); return $pdf->download('document.pdf'); } }
PDF コンテンツの Blade テンプレートを作成します:
touch resources/views/myPDF.blade.php
次のコンテンツを myPDF.blade.php に追加します:
Laravel PDF Example {{ $title }}
Date: {{ $date }}
This is an example of a PDF document generated using Laravel and DomPDF.
routes/web.php:
で PDF 生成を処理するルートを追加します。
use App\Http\Controllers\PDFController; Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
画像を Base64 でエンコードされた文字列として埋め込むか、URL を使用して PDF に追加できます。
画像は、base64 エンコーディングを使用して Blade テンプレートに直接埋め込むことができます。たとえば、public/images から画像を埋め込むには、次の方法で実行できます:
または URL から直接:
大規模なデータセット (1,000 レコードなど) を扱う場合は、ページネーションまたはチャンク化を使用してメモリ使用量を管理します。
$data = DB::table('users')->paginate(50); $pdf = PDF::loadView('myPDF', ['data' => $data]);
出力サイズを小さくするには、重い画像の使用を最小限に抑え、可能な場合はベクター グラフィックスを選択します。また、効率的な CSS を使用してください。
コンテンツが改ページに合わせて適切に構造化されていることを確認します。 CSS を使用して改ページを処理する:
.page-break { page-break-after: always; }
Blade テンプレート内:
さらに高度な構成については、DomPDF ドキュメントを参照してください。余白からフォントの読み込み方法まで、ほぼすべてをカスタマイズできます。
カスタム フォントを使用するには、まずカスタム フォントをプロジェクトに追加し、それらを使用するように DomPDF を設定します。
'custom_font_dir' => base_path('resources/fonts/'), 'custom_font_data' => [ 'custom-font' => [ 'R' => 'CustomFont-Regular.ttf', 'B' => 'CustomFont-Bold.ttf', ] ],
Blade テンプレート内:
このステップバイステップガイドに従うことで、Laravel と DomPDF を使用して、画像と CSS スタイルを備えた洗練された PDF ドキュメントを生成できます。このチュートリアルでは、重要な構成オプション、設計上の考慮事項、パフォーマンスの最適化について説明しました。この基盤を拡張して、Laravel アプリケーション用の堅牢なドキュメント生成システムを構築できます。
このチュートリアルは、Laravel を使用した PDF 生成に関するシリーズの一部です。さまざまなドキュメント テンプレート (請求書、領収書、証明書、チケットなど) を含む完全なリポジトリは、ここにあります。自由に貢献してコレクションを拡張してください。
コーディングを楽しんでください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3