Несомненно в языке C# и фреймворке .NET есть средства для печати документов и текста с помощью принтера. В данной статье описано, как вывести на печать текст программно. А для тех, кто больше любит смотреть, чем читать — в конце материла находится видеоурок по данной теме.
Печать на C# — Пошаговая инструкция
Создадим новый проект Windows Forms в Visual Studio.
Добавим на форму кнопку Button. Изменим ее свойство Text на значение «Печать». Имя кнопки в коде (Name) зададим равным «printButton».
Перейдем к коду на C# с помощью двойного щелчка мышью по кнопке «Печать» — тем самым будет создан обработчик события нажатия на данную кнопку.
В классе Form1 создадим поле типа string для хранения текста, который будем печатать на принтере.
1 |
private string result = ""; |
Подключим необходимое пространство имен.
1 |
using System.Drawing.Printing; |
Затем напишем обработчик события печати, который будет непосредственно отрисовывать текст на листе бумаги (по аналогии с отрисовкой строки на Bitmap). Шрифт укажем Arial, размер текста 14 пунктов, для отрисовки будем использовать черную кисть, а координаты (X; Y) начального положения укажем (0; 0).
1 2 3 4 |
void PrintPageHandler(object sender, PrintPageEventArgs e) { e.Graphics.DrawString(result, new Font("Arial", 14), Brushes.Black, 0, 0); } |
Оставшийся код пишем в обработчике события нажатия кнопки Печать.
Укажем текст для печати.
1 2 3 |
result = "Строка 1\n\n"; result += "Строка 2\nСтрока 3"; |
Символы перехода на новую строку позволяют представить текст в следующем виде:
1 2 3 4 |
Строка 1 Строка 2 Строка 3 |
Теперь создадим объект для печати текста на C#.
1 |
PrintDocument printDocument = new PrintDocument(); |
Добавим в него наш обработчик события печати.
1 |
printDocument.PrintPage += PrintPageHandler; |
Создадим объект, реализующий диалоговое окно с настройкой печати (в котором можно выбирать принтер, указывать количество копий документа и пр.).
1 |
PrintDialog printDialog = new PrintDialog(); |
Установим в диалог печати сам документ для печати.
1 |
printDialog.Document = printDocument; |
Запускаем диалоговое окно для печати и если в нем была нажата кнопка ОК, то выполняем печать документа на принтере.
1 2 |
if (printDialog.ShowDialog() == DialogResult.OK) printDialog.Document.Print(); |
Полный код урока с комментариями — Печать на C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
using System; using System.Drawing; using System.Drawing.Printing; using System.Windows.Forms; namespace TestPrintProject { public partial class Form1 : Form { public Form1() { InitializeComponent(); } // текст для печати private string result = ""; // обработчик события нажатия на кнопку Печать private void printButton_Click(object sender, EventArgs e) { // задаем текст для печати result = "Строка 1\n\n"; result += "Строка 2\nСтрока 3"; // объект для печати PrintDocument printDocument = new PrintDocument(); // обработчик события печати printDocument.PrintPage += PrintPageHandler; // диалог настройки печати PrintDialog printDialog = new PrintDialog(); // установка объекта печати для его настройки printDialog.Document = printDocument; // если в диалоге было нажато ОК if (printDialog.ShowDialog() == DialogResult.OK) printDialog.Document.Print(); // печатаем } // обработчик события печати void PrintPageHandler(object sender, PrintPageEventArgs e) { // печать строки result e.Graphics.DrawString(result, new Font("Arial", 14), Brushes.Black, 0, 0); } } } |
Тестирование программы
Запустим программу, нажмем кнопку Печать и увидим следующее окно.
Результат печати представлен ниже.
Печать документов на C# — Видеоурок
Поделиться в соц. сетях: