LaravelでPDFを生成する方法は?
PDFを生成するには、Barryvdh/laravel-dompdfを使用します。 1.コンポーザーをインストールするには、Barryvdh/laravel-dompdfが必要です。 2。オプションの公開構成PHP Artisanベンダー:Publish --Provider = "Barryvdh \ dompdf \ serviceProvider"; 3。invoice.blade.phpなどのブレードテンプレートを作成します。 4。PDF:: loadView( 'pdf.invoice'、compact( 'voice'))をコントローラーに使用して生成します。 5。ダウンロード()を呼び出して、ダウンロードまたはストリーミング()をプレビューします。紙の方向、マージンなどのオプションを設定できます。 DOMPDFはCSSのサポートが限られているため、複雑なレイアウトにWKHTMLTOPDFを使用することをお勧めします。
LaravelでPDFを生成することは、請求書、レポート、またはダウンロード可能なドキュメントを作成するための一般的な要件です。これを行う最も人気のある信頼できる方法は、Barryvdh/Laravel-DompDFまたはSPIPU/HTML2PDFパッケージを使用することです。以下は、 DOMPDFを使用した手順です。これは、広く使用され、Laravelで十分に統合されています。

barryvdh/laravel-dompdf
をインストールしてセットアップします
このパッケージは、DOMPDFライブラリをラップし、LaravelのHTMLビューからPDFを簡単に生成できます。
1. Composerを介してインストールします
作曲家には、Barryvdh/Laravel-Dompdfが必要です
注:Laravel 9の場合、互換性のあるバージョンを使用していることを確認してください。 Laravel 9には
barryvdh/laravel-dompdf:^2.0
使用します。
2。(オプション)configを公開します
PHP Artisan Vendor:Publish -Provider = "Barryvdh \ dompdf \ serviceProvider"
これにより、 config/dompdf.php
で構成ファイルが作成され、デフォルトのペーパーサイズ、フォントディレクトリなどの設定を調整できます。
?ブレードビューからPDFを生成します
任意のブレードテンプレートをPDFに変換できます。

1.ブレードビューを作成します
例: resources/views/pdf/invoice.blade.php
<!doctype html> <html> <head> <title>請求書</title> <style> ボディ{font-family:arial、sans-serif; } .header {Text-Align:Center;マージンボトム:20px; } 表{幅:100%;国境崩壊:崩壊; } Th、TD {border:1px solid #ccc;パディング:8px;テキストアライグ:左; } .total {font-weight:bold; } </style> </head> <body> <div class = "header"> <h2> Invoice#{{$ Invoice-> id}} </h2> <p>日付:{{$ Invoice-> date}} </p> </div> <表> <head> <tr> <th>説明</th> <th>量</th> <th>価格</th> </tr> </head> <tbody> @foreach($ INVOICE-> items as $ item) <tr> <td> {{$ item-> name}} </td> <td> {{$ item->数量}} </td> <td> $ {{$ item-> price}} </td> </tr> @endforeach </tbody> </table> <p class = "total">合計:$ {{$ Invoice-> total}} </p> </body> </html>
2。コントローラーでPDFを生成します
barryvdh \ dompdf \ facade \ pdfを使用します。 public function generatepdf($ id) { $ Invoice = Invoice :: with( 'items') - > findorfail($ id); $ pdf = pdf :: loadview( 'pdf.invoice'、compact( 'voice')); $ pdf-> download( 'invoice_'。$ id。 '.pdf')を返します。 }
stream()
を使用してブラウザでプレビューします。$ pdf-> stream( 'Invoice.pdf')を返します。
?追加のオプション
PDF出力をカスタマイズできます。
$ pdf = pdf :: loadview( 'pdf.invoice'、$ data) - > setpaper( 'a4'、 'landscape') - > setoption( 'mirdain_bottom'、20); $ pdf-> download( 'report.pdf')を返します。
一般的なオプション:
-
setPaper('a4', 'portrait')
または'landscape'
-
setOption('dpi', 150)
-
setOption('defaultFont', 'sans-serif')
dompdfの制限
使いやすいですが、 DOMPDFにはいくつかの制限があります。
- 限られたCSSサポート(FlexBox、複雑なレイアウトが壊れる可能性があります)
- 大規模なドキュメントの場合は遅い
- フォントは慎重に埋め込む必要がある場合があります
より高度なPDFについては、次のことを検討してください。
- SPIPU/HTML2PDF (TCPDFに基づくCSSサポートの向上)
-
laravel-snappy
経由のwkhtmltopdf (webkitを使用し、複雑なレイアウトに最適)
✅代替: laravel-snappy
を使用(wkhtmltopdf)
インストール:
作曲家には、Barryvdh/Laravel-Snappyが必要です
設定を公開:
PHP Artisan Vendor:Publish -Provider = "Barryvdh \ Snappy \ ServiceProvider"
次に使用してください:
Barryvdh \ snappy \ facades \ snappypdfを使用します。 snappypdf :: loadview( 'pdf.invoice'、$ data) - >ダウンロード( 'Invoice.pdf');
サーバーにインストールされている
wkhtmltopdf
が必要です。
まとめ
LaravelでPDFを生成するには:
- Barryvdh/laravel-dompdfを使用して、ブレードビューからのシンプルで迅速なpdfs
- bladブレードテンプレートでレイアウトを設計します
-
Pdf::loadView()
anddownload()
またはstream()
を使用します - CSSの制限に注意してください
- ?複雑なレイアウトについては、
wkhtmltopdf
を使用したLaravel-Snapyを検討してください
基本的に、セットアップすると簡単です。HTMLを書くだけで、Laravel Dompdfは残りを行います。
以上がLaravelでPDFを生成する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

laravelusesmonologtologmessagesviathelogfacade、withdefaultlogsstoredinstorage/logs/lavel.log.log.configurechannelsinconfig/logging.phptocontrolotput; thedefaultStackChannElagGregatesMultipleHandlikesingle、writeStoeSoafile.iseL.

laravelsancumviacomposerandpublishitsfiles、thenrunmigrations.2.addthehasapitokenstraittotheusermodel.3.defineLogin、logout、andUserroutesinapi.php、usingsingsanctum’sauth:sanctummiddle.4.protectectectapiroutedbyのsanctutedbyのsanctumddle.

InstallPestViacomposeRandInitializeItinLaravelToseTSting.2.createafeaturetestests/featuretovalidateuser-facinginteractions likehttprequestsanddatabaseChysusisingsusingsusingsusings syntax。

acountrycanaccesallpoststroughusersinghasmanythrough.forexample、withcountrients、counts andpoststableslinkedbyforeignkeys、thecountrymodeldeldefineshasmanymanymanytopostviauserは、効率性を有効化することを可能にします

toimplementfull-textsearchinlaravel、firstaddafull-textindexinthedigrationsing $ table-> fulltext(['title'、 'content']); sunuse howerfulltext(['title'、 'content']、$ query)Inqueriesforefficientsearch;

laravelsancumとapplementapiauthenticationは、spas、mobileapps、およびthird-partyservicestosecurelyelyalelyalelyalelyalelyalelyaptosecsessyourapi、youneedtosetoken basedoken based based basedationication basedtoken based basedationication byightweight approachbyissuinguingintokenthatcanです

Laravel Resource Controllerは、Restful Routingを介してCRUD操作を迅速に処理し、Artisanコマンドを使用してコントローラーを生成し、リソースルートを登録し、すべての標準ルートを単一のコードで作成できます。これは、アクションの制限、ミドルウェアとネーミングの追加をサポートし、パラメーターを自動的に分配するルーティングモデルのバインディングを組み合わせ、開発効率を改善し、コード構造を明確にします。

redirect() - >ルート( 'home')などのlaravelコントローラーのリダイレクトを実現するには、指定されたルート( '/dashboard')にジャンプして指定されたURL、redirect() - > back()が前のページに戻り、Insunt()を使用して[)を保持して[)]を使用します。メンテナビリティを向上させるために、名前付きルートを使用することをお勧めします。
