Печать .NET DataGridView - PullRequest
       15

Печать .NET DataGridView

15 голосов
/ 18 февраля 2009

Я довольно новичок в .NET и C #, но у меня есть DataGridView, который я хотел бы распечатать. Каков наилучший способ сделать это?

Ответы [ 9 ]

13 голосов
/ 10 июля 2009

Добавьте DataGridView, PrintDocuemnt и Button, затем:

button click events {
    printDocument1.Print();
}

printDocument1_PrintPage events {
    Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
    this.dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
    e.Graphics.DrawImage(bm, 0, 0);
}

Это все ваши данные печати. ​​

8 голосов
/ 18 февраля 2009

В CodeProject есть проекты, которые выполнили некоторую работу по печати DataGridViews.

5 голосов
/ 11 августа 2010

Я знаю, что вы уже приняли ответ, но следующий человек будет искать этот вопрос ...

Я также нашел этот замечательный проект в Code Project и только что реализовал его. Это было легко и приятно. http://www.codeproject.com/KB/grid/GridDrawer.Net.aspx

4 голосов
/ 28 апреля 2011

Вкл. CodeProject :

Другой принтер DataGridView от aureolin

Выше представлен еще один превосходный DataGridView принтер, который чрезвычайно прост в реализации.

Я понимаю, что я Джонни Заходи в последнее время к этой теме. Я наткнулся на это, когда искал что-то еще, но хотел сослаться на это превосходное решение для печати для других, кто происходит таким образом (как я сделал).

Надеюсь, кому-то здесь это пригодится.

3 голосов
/ 18 февраля 2009

Вы можете экспортировать DataGridView в Excel, а затем распечатать его из Excel.

Вы также можете не показывать свои данные в DataGridView, а показывать их в элементе управления ReportViewer, который имеет возможность экспорта в PDF или Excel. Оттуда можно распечатать ваши данные.

3 голосов
/ 18 февраля 2009

Боюсь, нет встроенной поддержки печати. ​​

Вы можете прибегнуть к использованию стороннего элемента управления, такого как Infragistics WinGrid со встроенной поддержкой печати.

2 голосов
/ 18 февраля 2009

.NET WinForm элементы управления (например, datagridview) изначально не поддерживают печать.

Тем не менее, в случае таблицы данных вы можете вызвать DrawToBitmap, а затем взять это растровое изображение и передать его функциям печати, чтобы создать его на бумаге.

1 голос
/ 31 января 2011

Мне нравится этот метод http://www.codeproject.com/KB/grid/GridDrawer.Net.aspx Но есть ли способ выбрать принтер.

Я хочу автоматически печатать в конце процесса. Так что планирую выбрать это как варианты 1, чтобы я всегда мог печатать на принтере по умолчанию. И еще один вариант, как выбрать принтер, а затем распечатать. Так что всего 2 функции ptint всего. Ответьте, пожалуйста. Приветствия

1 голос
/ 18 февраля 2009

Если вы собираетесь печатать больше, чем просто DataGridViews, возможно, стоит придерживаться более общего подхода. Мы используем MigraDoc, а затем написали наш собственный класс для чтения DataGridViews и вывода классов MigraDoc, представляющих таблицу.

Существует множество отличных пакетов для печати, но у меня есть опыт работы только с MigraDoc.

Edit:

В ответ на комментарии приведена ссылка на мой сайт с кодом, который я создал для создания таблиц MigraDoc, и пример его использования для отображения DataGridView ( DataGridView для таблиц MigraDoc ).

...