3

印刷後のテキスト品質に問題があります。滑らかでアンチエイリアスではありません!

これは物語です:

ビットマップ ( Graphics.FromImage(MyBitmap) )からグラフィックを作成します。 PrintPageEvenArg(e) を使用できないため、それが問題の出発点だと思いますが、他に選択肢はありません!

その後、このグラフィックにテキストを書き始めます。

このサイトや他のいくつかの同様の質問の回答を読んで、スムージング モード、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);

アンチエイリアスによって滑らかなエッジが得られましたが、テキストの近くに余分なピクセルが多く見られ、テキストの色が薄くなったように見えるので、エッジを滑らかにすることでテキストの品質がさらに悪化したと言えます!

助けてください!事前にサンクス:)

4

1 に答える 1

3

このソリューション(GraphicsPath)を使用してみてください。私のプロジェクトでは、非常にうまく機能します。

于 2012-07-25T12:17:08.223 に答える