Как стать автором
Обновить

Печать из под dataGridView на C#

Что это и зачем


Данный метод печати был откопан мною во время выполнения практики. Вдаваться в подробности задания не буду, скажу лишь то, что программа должна была выводить некие запросы собранные из базы данных на печать.
Оформление печати в программе тогда для меня было в новинку и немного пугало, как оказалось не зря. Все потому, что найти какую-либо внятную информацию по данной теме оказалось очень не просто.
Этот метод печати подойдет для малых проектов, точнее для таких же практических заданий, навряд ли он поможет с чем-то особенным. Главное что может этот метод, печатать отдельный элемент программы — 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#, автор хоть ума наберется.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.