テキトウにアップデートした
テキトウインサツは2008年11月から更新してなかったが、この度2013年11月版という更新を行った。この期間、自分でも愛用していたわけだから気になるところは気になっていたんだよ。特に印刷位置がちょっとだけ変なところ。テキトウに計算して並べてるからその計算が間違っててちょっとズレるのかなぁとか思ってたんだけど、5年ぶりにソースを見直しても別に計算を間違うほど特別なことはしていなかった。んで、どこが変でちょっとズレているのか見つけるのに苦労したんだけど、たぶんピクセルとインチの変換だろうなっていうところまで辿り着いた。そこから解決法は見つからなかったので、テキトウにつじつまを合わせておいた。今は手元にプリンタがないので紙で印刷の動作確認をしてないが、pdfに出力とかはうまく行ってるので大丈夫だろう。
これまでのテキトウインサツは、なんとインチもピクセルも全く意識せずにゴッチャにして印刷していた。テキトウインサツでそれをやってるって事は、もしかしたら真魚でもやってるかも。ゴッチャにしても問題が起きないのは、0.01インチと96dpiのおかげで96%くらいの正確さがあったからだろうと思う。んで、ちょっとズレてるのはこの4%だと思う。C♯で書いてるので.NETの仕様にそってやってるわけだが、用意されたクラスは0.01インチ単位で使うものと1ピクセル単位で使うものが混在し、それを変換する方法がわからないんだよ。いつでも96dpiではないかも知れないから、何かを使って変換する方法があるんだろうけどわからない。わからないからもうインチでないと使えない物は一切切り捨てて全部ピクセルで統一した。混在させてたらdpiが96じゃないときにまともに印刷出来ないけど、ピクセルしか使わなければdpiがいくつでもとりあえずテキトウには印刷出来る。でも余白をピクセルで指定することになっちゃうので、dpiによって余白の大きさは変ってしまう。まぁテキトウで良いけどさ。
印刷のプレビューやpdf出力の時点では、そのちょっとのズレを確認出来てないので、あくまで紙に印刷してみないとちょっとズレてるかどうかわからない。今回の全部ピクセルでやってみた状態でも、紙で動作確認してないのでまだズレてるかも知れないし、ひょっとしたら前よりズレてるかも知れない。印刷を扱うって難しいね。紙代もインク代もかかるしね。でも自分で使う機会が多いのでズレてるのは治しておきたいんだよね。あと密かに複数選択も出来るようにした。