Я запутался в этих двух методах.
Насколько я понимаю, Graphics.DrawString () использует GDI + и является реализацией на основе графики, а TextRenderer.DrawString ( ) использует GDI, позволяет использовать широкий диапазон шрифтов и поддерживает Unicode.
Моя проблема заключается в том, что я пытаюсь распечатать десятичные числа в виде процентов на принтере. Мои исследования заставили меня поверить, что TextRenderer - лучший способ.
Однако MSDN сообщает: «Методы DrawText TextRenderer не поддерживаются для печати. Вы всегда должны использовать методы DrawString класса Graphics».
Мой код для печати с использованием Graphics.DrawString:
if (value != 0)
e.Graphics.DrawString(String.Format("{0:0.0%}", value), GetFont("Arial", 12, "Regular"), GetBrush("Black"), HorizontalOffset + X, VerticleOffset + Y);
Это печатает «100%» для числа от 0 до 1 и «-100%» для чисел ниже нуля.
Когда я помещаю
Console.WriteLine(String.Format("{0:0.0%}", value));
в свой метод печати, значение выводится в правильном формате (например: 75,0%), поэтому я почти уверен, что проблема заключается в Graphics.DrawString ().