为什么GDI DrawString调用在PrintDocument中呈现出与呈现图像不同的行为?

时间:2011-12-08 14:50:19

标签: .net gdi printdocument

我正在使用PrintDocument类在C#中处理打印应用程序。我已经按照我想要的方式使用了物理打印部件,但其中一个要求是我也保存了一个图像文件。

我创建了一个图像并使用了渲染打印页面的相同GDI调用。除了文本外,它看起来非常接近。打印的页面很好,但保存的图像导致8pt Courier字体显示为0.1pt字体。

我尝试添加以下内容,但没有运气:

 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
 g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;

关于为什么文本渲染有差异的想法?

1 个答案:

答案 0 :(得分:1)

没有足够的代码可以查看,发布的代码段与字体缩放无关。

打印页面和图像之间的巨大差异是分辨率的巨大差异。 600 dpi vs 96 dpi,通常。打印机的默认缩放比例为1像素= 0.01英寸,使文本和图像在渲染到屏幕与纸张时的大小几乎相同。改变这种缩放会导致你遇到的麻烦。

例如,在代码中查找Graphics.PageUnit的任何赋值。