Печать .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.
Ответьте, пожалуйста.
Приветствия