我正在使用PrintDocument类在C#中处理打印应用程序。我已经按照我想要的方式使用了物理打印部件,但其中一个要求是我也保存了一个图像文件。
我创建了一个图像并使用了渲染打印页面的相同GDI调用。除了文本外,它看起来非常接近。打印的页面很好,但保存的图像导致8pt Courier字体显示为0.1pt字体。
我尝试添加以下内容,但没有运气:
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
关于为什么文本渲染有差异的想法?
答案 0 :(得分:1)
没有足够的代码可以查看,发布的代码段与字体缩放无关。
打印页面和图像之间的巨大差异是分辨率的巨大差异。 600 dpi vs 96 dpi,通常。打印机的默认缩放比例为1像素= 0.01英寸,使文本和图像在渲染到屏幕与纸张时的大小几乎相同。改变这种缩放会导致你遇到的麻烦。
例如,在代码中查找Graphics.PageUnit的任何赋值。