У принтера есть SDK, текст сейчас печатается через него. Если можно настроить нормально сглаживание и печать черного через .NET, буду только рад узнать как.
Для рисования лайоута на форме сейчас используется хак в виде рисования текста на временном битмапе, идентичным по размеру с лайоутом, и поиском на нем первого пикселя, отличающегося по цвету от фона. Отсюда получается смещение, на которое двигается текст при отрисовке, и в итоге рисуется все нормально. А при печати так сделать не получится — размер напечатанного текста отличается от размера нарисованного на битмапе.
Хм, а подробнее можно про считывание информации из шрифтов? В программе используются только установленные в систему шрифты. Если реально можно узнать точные размеры текста при печати/отображении для разных DPI из шрифта, это было бы просто замечательно.