1
我正在处理PrintDocument
的PrintPageEventHandler
,以便使用Image.FromFile
方法将图像 绘制到Graphics
设备。如何实现与Windows默认打印相同的图像打印质量?
我试图设置DPI值高达600,并且还
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality
如所建议的here但印刷的图像看起来仍然pixeled和粗糙相比打印具有例如相同的文件Windows照片查看器,它提供了一个很好的结果(在Windows 7上测试过)。
我注意到Paint.net使用WIA打印对话框 - 这是否意味着Imagequality是一个.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;
}
随机问题,你使用Windows 8?我发现从.net打印时,打印输出质量在Windows 8上显着降低,与早期版本相比,只是好奇你是否也使用Windows 8? – JMK
另外,你的来源是什么? – Tico
@JMK,OP表示“在Windows 7上测试过”。 – Steve