【Thinreports】先般Thinreports for PHPでやりたいことができなかった話

研究
brotiN biswaS at Pexels
この記事は約2分で読めます。

まあ4年手が入っていないものを捕まえてあれこれ言うのもいかんのですが。

Dark Mode

thinreports-php (this link opens in a new window) by thinreports-php (this link opens in a new window)

An implementation of the Thinreports Generator in PHP. It provides easy and simple way for generating a PDF on pure PHP.

そもそも当時の所属ではデザイナーがPDF含め画面設計やレイアウトを作っていたのですが、以前にTCPDFを使った際に、デザインが大変だとか、PDFの文字の出力位置が何ピクセルのマージンを空けると言う意思疎通に無茶苦茶難儀したので、エディタでデザインできるThinreportsを採用したわけです。
(ちなみにTCPDFはベースのPDFが読み込めると言うのを知ったのが随分あと)

ところがここで地味に問題が。

【急募】Thinreportsの代替になり得るPHPで使えるpdfジェネレータ

私が前回踏んだ問題点。
今回は

こう言うレイアウトにしていて、項目名とその本文の配列をループして出力先のID番号をインクリメントして出力しています。

ところがこれじゃダメだった。本文が長いと切り捨てられて表示されないんだ。そんな長文入れさせるとか想定してなかったもん(´・ω・`)

ならばとエディタでセルの設定を変更。文字を縮小させると最悪ミリ文字になっちゃうのでセルを拡張させたら、
当然下のセルを侵食したorz

thinreports-examples/list at master · thinreports/thinreports-examples

ここまで読んでなんか変だと思った諸兄はお察しだろう、だったらListレイアウトでいいじゃない。私もそう思い試行するも、
rubyでリストのIDを指定できている記述はあるんだけどPHPでの記述がない。

なんか変だと思いジェネレータのソースを解析。
そもそもリストに対応してる記述がない。orz
と言うわけで、このレイアウトに戻り、力技発動。項目名と本文を1カラムと見做し

・本文の文字数と改行文字数を計算し、本文セルの許容行数を上回るっぽかったら、収まり切るまで次以降のカラムへの出力を飛ばす。
・ページを跨いでしまうなら改ページをさせる。

サラッと書いてるようだけど力技なんですよこれ。

と言うわけで、ThinreportsはPHPでも使えないことはないんだけど

・エディタはChromeアプリがいつ切り捨てられるか判らないので何とかする
・ジェネレータはリストが使えないので使わない方向で行く

これらが懸念ですねぇ。
まあ素直にTCPDF使えばいいっちゃいいんでしょうが。

コメント

タイトルとURLをコピーしました