目次
barryvdh/laravel-dompdfをインストールしてセットアップします
1. Composerを介してインストールします
2。(オプション)configを公開します
?ブレードビューからPDFを生成します
1.ブレードビューを作成します
2。コントローラーでPDFを生成します
?追加のオプション
dompdfの制限
✅代替: laravel-snappyを使用(wkhtmltopdf)
まとめ
ホームページ PHPフレームワーク Laravel LaravelでPDFを生成する方法は?

LaravelでPDFを生成する方法は?

Jul 27, 2025 am 03:39 AM

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を生成する方法は?

LaravelでPDFを生成することは、請求書、レポート、またはダウンロード可能なドキュメントを作成するための一般的な要件です。これを行う最も人気のある信頼できる方法は、Barryvdh/Laravel-DompDFまたはSPIPU/HTML2PDFパッケージを使用することです。以下は、 DOMPDFを使用した手順です。これは、広く使用され、Laravelで十分に統合されています。

LaravelでPDFを生成する方法は?

barryvdh/laravel-dompdfをインストールしてセットアップします

このパッケージは、DOMPDFライブラリをラップし、LaravelのHTMLビューからPDFを簡単に生成できます。

1. Composerを介してインストールします

作曲家には、Barryvdh/Laravel-Dompdfが必要です

注:Laravel 9の場合、互換性のあるバージョンを使用していることを確認してください。 Laravel 9にはbarryvdh/laravel-dompdf:^2.0使用します。

LaravelでPDFを生成する方法は?

2。(オプション)configを公開します

PHP Artisan Vendor:Publish -Provider = "Barryvdh \ dompdf \ serviceProvider"

これにより、 config/dompdf.phpで構成ファイルが作成され、デフォルトのペーパーサイズ、フォントディレクトリなどの設定を調整できます。


?ブレードビューからPDFを生成します

任意のブレードテンプレートをPDFに変換できます。

Laravelで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( &#39;items&#39;) - > findorfail($ id);
    $ pdf = pdf :: loadview( &#39;pdf.invoice&#39;、compact( &#39;voice&#39;));

    $ pdf-> download( &#39;invoice_&#39;。$ id。 &#39;.pdf&#39;)を返します。
}

stream()を使用してブラウザでプレビューします。

 $ pdf-> stream( &#39;Invoice.pdf&#39;)を返します。

?追加のオプション

PDF出力をカスタマイズできます。

 $ pdf = pdf :: loadview( &#39;pdf.invoice&#39;、$ data)
           - > setpaper( &#39;a4&#39;、 &#39;landscape&#39;)
           - > setoption( &#39;mirdain_bottom&#39;、20);

$ pdf-> download( &#39;report.pdf&#39;)を返します。

一般的なオプション:

  • setPaper(&#39;a4&#39;, &#39;portrait&#39;)または&#39;landscape&#39;
  • setOption(&#39;dpi&#39;, 150)
  • setOption(&#39;defaultFont&#39;, &#39;sans-serif&#39;)

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( &#39;pdf.invoice&#39;、$ data)
          - >ダウンロード( &#39;Invoice.pdf&#39;);

サーバーにインストールされているwkhtmltopdfが必要です。


まとめ

LaravelでPDFを生成するには:

  • Barryvdh/laravel-dompdfを使用して、ブレードビューからのシンプルで迅速なpdfs
  • bladブレードテンプレートでレイアウトを設計します
  • Pdf::loadView() and download()またはstream()を使用します
  • CSSの制限に注意してください
  • ?複雑なレイアウトについては、 wkhtmltopdfを使用したLaravel-Snapyを検討してください

基本的に、セットアップすると簡単です。HTMLを書くだけで、Laravel Dompdfは残りを行います。

以上がLaravelでPDFを生成する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Laravelのファイルにメッセージを記録する方法は? Laravelのファイルにメッセージを記録する方法は? Sep 21, 2025 am 06:04 AM

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

LaravelでAPIを認証する方法 LaravelでAPIを認証する方法 Sep 18, 2025 am 12:26 AM

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

Laravelで機能テストを害虫で書く方法は? Laravelで機能テストを害虫で書く方法は? Sep 16, 2025 am 06:12 AM

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

LaravelでHasManythrough関係を使用する方法は? LaravelでHasManythrough関係を使用する方法は? Sep 17, 2025 am 06:38 AM

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

Laravelでフルテキスト検索を作成する方法は? Laravelでフルテキスト検索を作成する方法は? Sep 16, 2025 am 03:42 AM

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

Laravel SanctumでAPI認証を実装する方法は? Laravel SanctumでAPI認証を実装する方法は? Sep 19, 2025 am 04:08 AM

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

Laravelでルートリソースコントローラーを使用する方法は? Laravelでルートリソースコントローラーを使用する方法は? Sep 24, 2025 am 05:05 AM

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

Laravelコントローラーでユーザーをリダイレクトする方法は? Laravelコントローラーでユーザーをリダイレクトする方法は? Sep 21, 2025 am 05:26 AM

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

See all articles