印刷を考えてみる
印刷。
印刷ということで、最終的な出力結果は紙です。当たり前です。いままで画面に対して描画していたものが、紙を相手にすることになります。で、描画自体は描画先のデバイスコンテキストが変わる程度しか違わないのですが、プリンタの情報(紙のサイズとか、カラーかどうか、とか)を同時に扱わなければならないのがめんどいです。
それから、印刷プレビューの機能が必須なのですが、これがむずかしい。というのは、紙に印刷したときの状態を正確に反映できないとプレビューとして役に立たないからです。プレビューで A4 用紙 1 枚にぴったり収まってたのに印刷したら 1 文字だけあふれて 2 枚出てきたとか困るっしょ。だからプレビューと印刷は一致する。話のわかるヤツだ。
で、それはどうするのかというと、プリンタ用に描画したものを、画面用に変換してやればよさそうです。ただ、プリンタは解像度が 300dpi とか 700dpi とかざらなので(画面は 96dpi やそこら)、変換のために大量のメモリを消費することになってしまう。
ということで印刷プレビューの実装は、メタファイルを経由するのが定石なんだそうです。メタファイルというのは描画の手順を記録したファイルのことですが、これを 1 つ作れば印刷用にも表示用にも使えるし、ファイルサイズも高が知れてるし、倍率も自由自在で、変倍して描画が崩れることもない。。。といいこと尽くめです。
なんて書いてると、たいてい致命的な問題が出てきたりするわけですが。。。
by knife37
| 2005-01-09 22:18
| 妄想を申そう
| Top
|