Я хочу создать небольшое изображение, содержащее go и несколько строк текста, и отправить его прямо на принтер. Однако у меня возникли проблемы с качеством текста.
В настоящее время я создаю растровое изображение и выводим на него текст через g.DrawString:
Bitmap bitmap = new Bitmap(240, 240);
Graphics g = Graphics.FromImage(bitmap);
g.SmoothingMode = SmoothingMode.AntiAlias;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; // or AntiAlias
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.DrawString("Charge: 1911", new Font("Arial Narrow", 8.0F, System.Drawing.FontStyle.Regular), Brushes.Black, new PointF(6,119));
PrintDocument pd = new PrintDocument();
[...]
pd.PrintPage += PrintPage;
pd.Print();
g.Dispose();
Этот код работает так, как ожидалось, за исключением того, что качество текста слишком на самом деле плохо печатать.
Это текущий результат:
с AntiAliasGridFit:
С AntiAlias:
![enter image description here](https://i.stack.imgur.com/R9k88.png)
Это (или лучше) результат, которого я хочу достичь:
![enter image description here](https://i.stack.imgur.com/MnBZE.jpg)
Теперь мой вопрос: есть ли способ улучшить качество текста, может быть, использовать TextRenderer вместо Graphics? Это не должно быть растровое изображение, которое я печатаю. Мне просто нужно иметь возможность записать на него уже существующее изображение и затем отправить весь документ на принтер.