C#で印刷をするソフトを作っています。
プレビューに PrintPreviewControl を使っていますが、プレビューと印刷時でずれが生じます。
調べたところ、Graphics の原点がプレビューでは用紙左上になっているのに対し、プリンタでは印刷可能領域の左上になっていました。
そのため、画面では良好な表示なのに、印刷した時には印刷不可能な幅だけ右下にずれてしまいます。
この大きさについては、PageSettings.HardMarginX および PageSettings.HardMarginY で取得できますので、PrintDocument.OriginAtMargins を False とし、同じく Margins を (0, 0, 0, 0) として、Graphics.TranslateTransform() メソッドを使って左上にずらすことで良好な印刷結果を得ることができます。
しかし、そうすると今度はプレビュー画面で左上に寄ってしまいます。
このずれを補正するための何か簡単な方法がありますでしょうか?
もしなければ Graphics がプレビュー画面なのかプリンタのものなのかによって条件分岐して補正しようと思いますが、それを判別する方法がありますでしょうか?

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。