понедельник, 22 сентября 2014 г.

Печатаем текст вертикально снизу вверх.

Если у вас возникнет необходимость напечатать на странице вертикальный текст идущий снизу вверх, то вы будете не приятно удивлены. Такой возможности в .Net нет. Напечатать вертикальный текст сверху-вниз элементарно, это делается буквально в пару строк:

  
            StringFormat formatver = new StringFormat(StringFormatFlags.DirectionVertical);
            e.Graphics.DrawString("Проверка", this.Font, Brushes.Black, 0, 150, formatver);


В результате получаем вот такой текст (1). Напечатать же текст (2) не прибегая к разным ухищрениям невозможно.

В сети есть разные варианты решения этой проблемы в основном сводящиеся к вращению холста с помощью Graphics.Transform. Такое решение, конечно, имеет право на жизнь, но оно, как мне кажется, далеко не самое оптимальное.