如何实现与Windows默认打印相同的图像打印质量?

时间:2013-10-29 11:53:51

标签: c# .net image printing

我正在处理PrintPageEventHandler的{​​{1}}以绘制图像 使用PrintDocument方法到Graphics设备。

我尝试将dpi值设置为600以及

Image.FromFile

正如所建议的那样here但是与打印相同的文件相比,打印的图像看起来仍然是像素和粗糙的。 Windows Photo Viewer,它提供了出色的结果(在Windows 7上测试过)。

我注意到Paint.net使用了WIA Printing Dialog - 这是否意味着Imagequality是.NET限制,还是我做错了?

完整的方法在这里:

graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode  = SmoothingMode.HighQuality;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality

1 个答案:

答案 0 :(得分:0)

好的,这很令人尴尬:

与win7完全相同的最佳质量是根本不定义任何选项!

该代码是在XP下开发的,因此必定会有一些变化,因此win7处理的方式不同。

private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
    // Draw a picture.
    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;
}

简单如下:|