Рисование текста и печать текстового файла

 

Листинг 8.1. Код для рисования горизонтального текста.

private void Form1_Paint(object sender, PaintEventArgs e)

{

//Объявляем переменную myString и присваиваем значение:

string myString = "Visual Studio";

//Объявляем объект myFont и создаем экземпляр объекта:

Font myFont = new Font("Arial", 30);

//Объявляем объект myBrush и создаем экземпляр объекта:

SolidBrush myBrush = new SolidBrush(Color.Black);

//Задаем координаты начала текста:

float x = 5.0f;

float y = 50.0f;

//Рисуем горизонтальный текст кистью myBrush:

e.Graphics.DrawString(myString, myFont, myBrush, x, y);

//Высвобождаем память, выделенную объектам:

myFont.Dispose();

myBrush.Dispose();

}

Листинг 8.2. Строки для рисования вертикального текста.

//Объявляем объект myFormat и создаем экземпляр объекта:

StringFormat myFormat = new StringFormat(

StringFormatFlags.DirectionVertical);

//Рисуем вертикальный текст кистью myBrush:

e.Graphics.DrawString(myString, myFont, myBrush,

x, y, myFormat);

Листинг 8.3. Считывание текстового файла.

System.IO.StreamReader myPrintFile;

Font myPrintFont;

private void button1_Click(object sender, EventArgs e)

{

string myPrintPath = Environment.GetFolderPath(

Environment.SpecialFolder.Desktop);

myPrintFile =

new System.IO.StreamReader(myPrintPath +

@"\myText.txt");

myPrintFont = new Font("Times New Roman", 12);

printDocument1.Print();

myPrintFile.Close();

}

Дважды щелкаем по значку для компонента PrintDocument (ниже формы в режиме проектирования). Открывается файл Form1.cs с шаблоном, который после записи кода принимает следующий вид.

Листинг 8.4. Печать текстового файла.

private void printDocument1_PrintPage(object sender,

System.Drawing.Printing.PrintPageEventArgs e)

{

float yPos = 0f;

int counter = 0;

float leftMargin = e.MarginBounds.Left;

float topMargin = e.MarginBounds.Top;

string line = null;

float linesPerPage = e.MarginBounds.Height /

myPrintFont.GetHeight(e.Graphics);

while (counter < linesPerPage)

{

line = myPrintFile.ReadLine();

if (line == null)

{

break;

}

yPos = topMargin + counter *

myPrintFont.GetHeight(e.Graphics);

e.Graphics.DrawString(line, myPrintFont,

Brushes.Black, leftMargin, yPos,

new StringFormat());

counter++;

}

if (line != null)

{

e.HasMorePages = true;

}

}

Проверяем в действии созданную нами программу для печати на принтере текстового файла. Строим и запускаем программу: Build, Build Solution; Debug, Start Without Debugging. Мы увидим форму Form1 в режиме выполнения. Щелкаем кнопку Print. Принтер печатает заданный текстовый файл. По этой методике мы можем распечатывать из Visual Studio различные текстовые файлы с различным расширением.

Предлагаю ознакомиться с аналогичными статьями: