メソッドを使用してデバイスに画像を描画するために、 を処理していPrintPageEventHandler
ます。PrintDocument
Graphics
Image.FromFile
dpi値を最大600に設定しようとしましたが、
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality
ここで提案されているように、印刷された画像は、Windows フォト ビューアーなどで同じファイルを印刷する場合と比較して、まだピクセル化されて粗く見えます。これにより、優れた結果が得られます (Windows 7 でテスト)。
Paint.net が WIA 印刷ダイアログを使用していることに気付きました。これは、画質が .NET の制限であることを意味しますか、それとも単に間違っているのでしょうか?
完全な方法は次のとおりです。
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
// Draw a picture.
ev.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
ev.Graphics.SmoothingMode = SmoothingMode.HighQuality;
ev.Graphics.CompositingQuality = CompositingQuality.HighQuality;
ev.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
ev.Graphics.DrawImage(Image.FromFile(Global.APPDATA_PATH+ @"tmp\print.png"), ev.Graphics.VisibleClipBounds);
// Indicate that this is the last page to print.
ev.HasMorePages = false;
}