Laravel-dompdf でPDF領収書発行システムをA5横書きを指定して作成する

Laravel-dompdf でPDF領収書発行システムをA5横書きを指定して作成する

Laravel-dompdf でPDF領収書発行システムをA5横書きを指定して作成する

Laravel-dompdf、超便利です。

なんといっても、bladeを読み込んでそのままPDF化してくれるというこの機能!

ただ、私が四苦八苦したのは『横書き』の設定方法についての参考記事の少なさでした。
という事で、今後の為にも備忘録です。

Laravel-dompdfで出力用紙サイズの指定と向きを指示する方法

ノーマル状態だとA4縦書きになります。

compact()で渡しているのは領収書用blade(pdf/receipts)に送る変数です。

この中に税率10%の商品合計とかお支払とかそんな情報を入れてblade側でいつも通りに{{$billing->total}}とかで呼んであげればサクッとPDFが作れます。

用紙のサイズを指定したいときは【PDF::】にもう一つ値を加えてやります。

上の例だと、A4横書きのPDFが作成できます。setPaperという指標で用紙サイズと向きを指定するだけという超簡単さ。

setPaperでの指示について今調べた範囲の情報まとめ

  1. setPaper(‘a4’, ‘landscape’) => A4横書き
  2. setPaper(‘A5’, ‘landscape’) => A5横書き ※Aは大文字小文字どちらでも問題なし
  3. setPaper(‘landscape’) => A4縦書きで出力 ※横書きにならない。横書きにする場合用紙サイズの指定が必要
  4. setPaper([0, 0, 396.85, 685.98], ‘landscape’) => 用紙サイズを指示して出力 [横開始位置,縦開始位置,用紙縦サイズ,用紙横サイズ]となっている※’landscape’を忘れると強制的に縦書きになる
  5. setPaper([0, 0, 396.85, 685.98]) => ‘landscape’を忘れると強制的に縦書きになるため、[0, 0, 685.98, 396.85]と同じ状態で出力される

setPaper(‘A5’, ‘portrait’)という指標を使っている方がいたが、この意味についてはわからなかった。

portraitがついていてもいなくても縦書きになるので、基本的にはなくても良いのだと勝手に解釈する事にしました。

URLにアクセスしたらブラウザで開かずダウンロードさせたい

その場合はreturnでダウンロード指示すればOKです。

これだけで『ファイル名:領収書.pdf』でアクセス時にダウンロードを行います。いやぁ~簡単便利。

縦書きと横書きを場合分けしたい

今回私が作成したかったのは2つありました。

某企業様用の『提案書作成ツール』と自社用の『領収書発行システム』。

自社用だけであれば領収書ですから場合分けは不要です。
しかし、受注したシステムの顧客要望は『縦書きと横書きの提案書がある』でしたからどうしても場合分けが必要。
そんな時は提案書テンプレートを格納するデータベースに縦横の指標を入れておけば簡単に解決します。

上の例では、提案書を格納しているテーブルに『direction 』という項目(Flag)を加えて、1の時は横書きとして動作します。

まとめ

Laravel-dompdf、横書きも用紙指定も出来るとなればLaravelでは最強かもしれません。