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

时间:2012-07-25 06:47:31

标签: c# graphics bitmap 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);

通过antialising我有更好的光滑边缘,但我看到我的文本附近有很多额外的像素,我的文字颜色似乎变得更轻,所以我可以说通过平滑边缘我的文字质量甚至变得更糟!

请帮助我! Thanx提前:))

1 个答案:

答案 0 :(得分:3)

尝试使用this solution(GraphicsPath)。在我的项目中它非常好。