Ramen55レポート機能開発秘話④

Ramen55には月間の売り上げ実績レポートを作成して印刷できる追加機能があります。
前回に引き続き、そのレポート作成機能の開発秘話をちまちまと書いていこうかと思います。

行程②:どう作るかを決める(システム要件・調査) 三回目

前回調査した結果、ファイルを保存させるために使う仕組みはmpdfというものに決定しました。
今回はmpdfの使い方を調査していきます。

mpdfは、直接pdfと呼ばれる印刷フォーマットを出すのではなく、
一回htmlと呼ばれるホームページのフォーマットを、pdfと呼ばれるものに変換するライブラリです。
つまり、Ramen55のレポートを出そうと思ったら、
php→html→pdfという三段階構成になるわけですね!
(正直この時点でかなりのめんどくささを感じています)

その上、mpdfはなんとデフォルトでは日本語に対応していないライブラリらしく、
日本語の資料がほとんどありません。
日本語の文字を出すことすら四苦八苦……。

というか、いろいろ悩んだ末に、使わなそうなタイ語のフォントに日本語フォントデータを上書きしました。
実は力技です。

なんとか日本語の文字が出ても、今度は表を出すのに苦労しました。
最近のホームページでは、表を画面に出すためにはcssと呼ばれる仕組みが使われているのですが、
なんとmpdfはcssを読み込むことができません!

そこで登場するのがテーブルタグという、ホームページが世の中に出てきたばかりのころに使われていた技術です。
(プログラマー界隈では「いにしえの技術」とか言われています)
中学生のころに遊びで作ったホームページの技術がこんなタイミングで使えるとは思いませんでした!

その結果、何とか一枚試し刷りに成功!
したと思ったのですが、なぜかロゴの画像が表示されません!
――なんで!?