LaravelでPDF出力したいけど結局何がベストなのか
目次
LaravelでPDF出力したいけど結局何がベストなのか
まぁそんなPDF出力を伴う案件でのお話。
技術DよりMTGでご教授伊t抱いた内容を多分に含みます。
LaravelでPDF出力する方法は何種類もある
『種類』なのでプラグインでという話ですが、一般的に検索に挙がるものを列挙してみます。
- Dompdf(ドムPDF)
-
Snappy(スナッピー)
-
TCPDF(ティーシーPDF)
- mpdf(エムPDF)
それぞれに其々の癖があるので、適材適所に運用するのが良さそうです。
Dompdfの特徴
- 導入も利用方法も簡単
- HTMLで記載したページをPDF化してくれる
-
PhpSpreadsheetと連携して運用できる
- 利用できるCSSが少ない
- デザイン的なページはCSSの規制でページ作成が困難
インストールコマンド
1 |
composer require barryvdh/laravel-dompdf |
Snappyの特徴
- 導入が大変(必要なパッケージが多く最初が大変)
- HTMLで記載したページをPDF化してくれる
- 利用できるCSSが多いのでデザイン的なページ作成にも耐える
- Dompdfと比べてWeb上の資料が少ない
- PhpSpreadsheetとの連携は不明
インストールコマンド
1 2 3 4 5 6 |
# Laravel-Snappyのパッケージをインストールする前にWhtmltopdfをインストールが必要 composer require h4cc/wkhtmltopdf-amd64 0.12.x composer require h4cc/wkhtmltoimage-amd64 0.12.x # Laravel-Snappyのインストール composer require barryvdh/laravel-snappy |
TCPDFの特徴
- 導入は簡単
- テンプレートPDFを用意し【座標】指示にて【記載内容】をプロットしていくのがセオリーな使い方の様子
- 座標の指示が難易度高め
- 座標指定なのでデザイン的な帳票なども再現性が高い
- かつてはPHPでPDFといえばTCPDFで確定だったらしい
- PhpSpreadsheetと連携して運用できる
- すでにメンテナンスされなくなっている事が最大の懸念点
インストールコマンド
1 2 |
composer require tecnickcom/tcpdf composer require setasign/fpdi |
mpdfの特徴
- 導入は簡単
- HTMLで記載したページをPDF化してくれる
- Dompdfよりも利用できるCSSが多く意図したページを作成しやすい
- Dompdfと比べてWeb上の資料が少ない
- PhpSpreadsheetと連携して運用できる
- 最近人気が高いらしい
インストールコマンド
1 |
composer require carlos-meneses/laravel-mpdf |
まとめ
MTGの結果、今回はdompdfを利用することになりました。
理由は「ほぼテーブルで記載できて、難しいCSSを使わなくて済みそうだから」
それくらいdompdfで利用できるCSSには難があるんですね。
多分この様な背景があって、mpdfに注目が集まっているのでしょう。
ということで、ほぼ表で終わる様なものであればネット記事も多いdompdfが扱いやすそうです。
細かなデザインが存在するものはPDFでテンプレを用意しつつそこに座標でプロットするTCPDFが勝手な次ページ送りなどを回避してくれるでしょう。
HTMLからそれなりにデザインし出力したいのであればmpdfが初級者の選択肢の筆頭になりそうです。
PhpSpreadsheetから直接PDF出力できる日は来ないものかなぁ。
-
前の記事
ERROR:Target [RepositoryInterface] is not instantiable while building [Errorファイル名] 2022.08.02
-
次の記事
流行りのChatGPTにWordPressの記事生成をさせてみた 2023.12.05
コメントを残す