# 伝票系PDF出力のベストプラクティスを模索した話 ## アジェンダ - 1.PDF出力系の実装における課題 - 2.実装した内容 - 3.実装した感想 ## 1.PDF出力系の実装における課題 ### 案件の概要 - 某案件でLaravelでPDF出力を実装することになりました。 - 4種類の伝票をPDF出力する - デザインはデザイナーさんが作成してくれる ### 課題感 - 実装しても環境依存でレイアウトが崩れる事が多い - 指定したフォントが上手く反映されない事がある - どのPHPライブラリを使ってもそれなりに実装は時間かかる ## 2.実装した内容 XDやFigmaでデザインしてSVGでエクスポートしたものをテンプレートとしてそのままHTMLに埋め込んで出力する - 参考にした記事 https://blog.ttskch.com/web-app-pdf-printing-best-practice/ - laravel snappyで実装   - https://qiita.com/naga3/items/3b65a39e235b8bd26f4a - 実際の実装を少し見せる ## 3.実装した感想 - 良かった点 - レイアウトが固定且つ、ほぼ変わる予定がない伝票には向いている - HTMLでチマチマ実装しないで、2時間くらいで実装終わった - レイアウト崩れをほぼ気にしなくて良い - 帳票のデザインって多くの場合A4一枚にピッタリ収まることが大前提になっていて、Webにおけるページレイアウトのセオリーとはかけ離れているので、保守性を維持しながらこれを作るのは相当難しいです。 - 困った点 - 細かいデザインの調整をblade側でしづらい - 細かく表が可変するような伝票だとSVGにするのは困難なので、使えなかった - デザイナーさんとも連携ができる案件でないと、デザインの中に変数の埋め込みとかはしにくい。