確か,Ver.7.0 で抜本的に見直して内部ルーチンをほぼ全て一から作り直したはずだが,スケーラビリティというか,汎用性があまりにもなかったのでもう一度作り直すことにする.
プログラミングにおいて,印刷ほど難しい分野はないと思う.特に OS なりライブラリなりによって提供されるサービスの質が違うので,汎用性を持たせるにはかなり低レベルな部分から作り込む必要がある.
プリンタ毎の違いなんて GDI じゃ満足に吸収してくれないので,自前で DPI 変換などを必死に書く羽目になる.これは恐ろしく手間のかかる作業になる.
ウィンドウでは考える必要のない「ページ」という概念も頭を悩ませる要素だ.必要なデータを綺麗に1ページに収めるには,本質的には無駄な処理を大量に行う必要がある.
と,とりあえずソースコードを読み直すことから始めます.