使用"graphics.DrawString"后如何提高打印文本质量?



打印后我的文本质量有问题!它不是平滑和抗锯齿的!

这就是故事:

我从位图创建了一个图形(Graphics.FromImage(MyBitmap)),我认为这是我问题的开始,因为我不能使用PrintPageEvenArg(e),但我别无选择

之后,我开始在这张图上写一些文字:

通过阅读本网站和其他网站中类似问题的答案,我对我的图形属性进行了一些更改,如smoothingMode、TextRenderingHint。。。你看到的继续。。。但不幸的是,他们都没帮我!

  SolidBrush sb = new SolidBrush(Color.White);
  graphics.FillRectangle(sb,oRectangle); //it was suggested to be done before antialiases inorder to get effects
  graphics.TextRenderingHint = TextRenderingHint.AntiAlias; //I also tried ClearTypeGridFit
  graphics.SmoothingMode = 
        System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
  graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
  graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
  graphics.CompositingQuality = CompositingQuality.HighQuality;
  graphics.CompositingMode = CompositingQuality.SourceOver;
  graphics.DrawString(strValue, boxStyle.Font, sb, oRectangle, StringFormat);

通过抗锯齿,我得到了更好的平滑边缘,但我在文本附近看到了很多额外的像素,我的文本颜色似乎变浅了,所以我可以说,通过平滑边缘,我的文字质量甚至变差了!

请帮帮我!提前Thanx:)

尝试使用此解决方案(GraphicsPath)。在我的项目中,效果非常好。

相关内容

  • 没有找到相关文章

最新更新