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

标签 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);

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

请帮助我!提前致谢:)

最佳答案

尝试使用this solution (图形路径)。在我的项目中,它工作得很好。

关于c# - 使用 "graphics.DrawString"后如何提高打印文本质量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11644115/

相关文章:

java - 同时使用java bufferstrategy和swing元素

c - 查找位图的xy位置

c# - Unity 中的 Mono 与 .NET

c# - 通用委托(delegate) C#

将具有浮点顶点的段映射到二维整数空间(伪像素)的算法

c++ - 覆盖/最小化窗口的屏幕截图

java - 4320016 字节分配内存不足

android - 位图可绘制( map 叠加项)在android中旋转后像素化

c# - 领域模型及相关数据(贫血领域模型)

C# 为什么 System.IO.File.Exists 不断出错?