Что это и зачем
Данный метод печати был откопан мною во время выполнения практики. Вдаваться в подробности задания не буду, скажу лишь то, что программа должна была выводить некие запросы собранные из базы данных на печать.
Оформление печати в программе тогда для меня было в новинку и немного пугало, как оказалось не зря. Все потому, что найти какую-либо внятную информацию по данной теме оказалось очень не просто.
Этот метод печати подойдет для малых проектов, точнее для таких же практических заданий, навряд ли он поможет с чем-то особенным. Главное что может этот метод, печатать отдельный элемент программы — dataGridView.
При этом, этот метод на самом деле гораздо функциональный, чем просто печать запросов. Он может печатать все, что вы поместите в dataGridView.
Метод печати
Собственно, сам метод печати использует создание bitmap изображения, которое потом и выводится на печать. Для многих это не ново, однако для новичков будет интересно узнать, как это делается.
Сам код:
private void printDocument_PrintPage(object sender, PrintPageEventArgs e) // Метод печати для printDocument
{
Bitmap bmp = new Bitmap(dataGridView.Size.Width + 10, dataGridView.Size.Height + 10);
dataGridView.DrawToBitmap(bmp, dataGridView.Bounds);
e.Graphics.DrawImage(bmp, 0, 0);
}
А теперь пошаговое решение:
- В windows forms проект на C# добавляем элемент управления printDocument. После чего дважды кликаем по его интерфейсу.
- В открывшемся коде нас будет ждать пустой метод печати.
- Вписываем туда объявление и создание bitmap изображения (Bitmap bmp = new Bitmap(dataGridView.Size.Width + 10, dataGridView.Size.Height + 10);), где указываются размеры изображения, по умолчанию — размер dataGridView плюс 10 пикселей. Само изображение носит название bmp.
- Затем прорисовываем в картинку сам dataGridView, по умолчанию прорисовывается построчно.
- Следующий шаг, рисует на листе наше получившееся изображение.
- Далее создаем обработчик, называем как угодно и описываем действие по клику мыши (printDocument1.Print();), тем самым отправляя наше изображение на печать.
Последнее слово
Сейчас кажется таким простым, однако пришлось изрядно попотеть в поисках чего-то подобного. Метод имеет огромное количество минусов, но есть плюсы, к примеру он свободно справляется с печатью цветных изображений.
Спасибо за внимание, надеюсь что хоть кому-то статья поможет, предлагайте свои методы печати из баз данных на C#, автор хоть ума наберется.