とりあえず、1枚印刷するだけの機能は出来たので、あとはこれを元に複数ページ作成に対応させるだけ。
しかし、位置指定が全部ピクセル指定なのは思ったより大変だな。
つーか、人間としてはミリ指定しかできんからな。(そりゃ 72dpi だから、25.4mm の中に72個ドットが存在するという前提で「5.7ピクセル(約 2mm)左に寄せるか」みたいな思考ができる変質者も中にはいるだろうけど(笑))
なので、
sub mm2px {#==========================# ミリをピクセルに変換(72dpi前提)#==========================my $mm = $_[0];my $px = $mm / 25.4 * 72;return $px;}sub px2mm {#==========================# ピクセルをミリに変換(72dpi前提)#==========================my $px = $_[0];my $mm = $px / 72 * 25.4;return $mm;}
みたいな関数作って、相互に変換しまくりながらロジック組んだよ(笑)
例えば、「14ピクセルずらしたら、名前表示開始位置の 50mm を超えないか」とか。
if (($pos_mm + &px2mm(14)) > 50) みたいな感じで。
いや、住所が長くて2行になれば、当然後ろの項目の表示位置もずらしていくことになるから、そんな計算ばかりしてるプログラムになった(^^;
ま、なんとか上手くレイアウト出来たので、次のステップへ(笑)
コメントする