Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何提高使用后的打印文本质量;图形.抽绳“;?_C#_Graphics_Bitmap_Drawstring - Fatal编程技术网

C# 如何提高使用后的打印文本质量;图形.抽绳“;?

C# 如何提高使用后的打印文本质量;图形.抽绳“;?,c#,graphics,bitmap,drawstring,C#,Graphics,Bitmap,Drawstring,打印后我的文本质量有问题!这不是平滑和反锯齿 故事是这样的: 我从位图(Graphics.FromImage(MyBitmap))创建了一个图形,我认为这是我问题的起点,因为我不能使用PrintPageEventArg(e),但我别无选择 之后,我开始在这张图上写一些文字: 通过阅读本网站和其他一些网站上类似问题的答案,我对我的图形属性进行了一些更改,如smoothingMode、TextRenderingHint等。。。你在继续中看到。。。但不幸的是,他们都没有帮助我 SolidBrush

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

故事是这样的:

我从位图(Graphics.FromImage(MyBitmap))创建了一个图形,我认为这是我问题的起点,因为我不能使用PrintPageEventArg(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)。在我的项目中,它工作得非常好。

ClearType和您尝试应用的其他文本呈现提示适用于屏幕上的图像。打印时他们什么也不做。这就是抗锯齿的工作原理。它添加了不同颜色或灰度的额外像素,有助于平滑文本边缘。现在还不清楚是什么导致了你的问题;打印机具有极高的分辨率,因此应该能够输出高质量的图像。为什么不能使用
PrintPageEventArgs
?为什么你“别无选择?”@CodyGray:因为我正在做一个以前写过的项目,这个解决方案有线程和许多方法,我无法完全改变它们。所有的方法,比如MyPrintDocument_PrintPage,都有这个事件,在我需要这个事件的时候调用!thanx,我会尝试一下,然后告诉你结果如何:)我使用了GraphicsPath,它在消除混叠方面有很好的效果,但不幸的是,我在打印前有一个额外的保存和恢复图像的问题,所以我得到了一个低质量,涵盖了你解决方案的利润,你能在这个链接中看到我的新问题并帮助我吗?