Печать .NET DataGridView

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

Ответы

Ответ 1

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

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

Ответ 2

Добавьте DataGridView, PrintDocuemnt и кнопку, а затем:

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);
}

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

Вкл CodeProject:

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

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

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

Я надеюсь, что кто-то здесь будет полезен.

Ответ 6

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

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

Ответ 7

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

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

Ответ 8

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

Есть много больших пакетов печати, но у меня есть только опыт с MigraDoc.

Edit:

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

Ответ 9

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

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