WinForm中打印控件的用法Winform
一、放三个有关打印的控件printDialog、printDocument、printPreviewDialog
二、设置printPreviewDialog控件的Document属性,该属性一般会设置为printDocument控件
三、写printDocument中的PrintPage事件,在该事件设置打印的位置和样式
例如:
1、从控件中取出数据放入DataTable
DataTable objDataTable = (DataTable)this.dataGridView1.DataSource;
2、设置打印时的横坐标和纵坐标
int StartX = 0;
int StartY = 120;
3、设置标题的内容、字体、字体大小、颜色、坐标位置
e.Graphics.DrawString("广东步步高电子工业有限公司出库批次情况", new Font("Arial", 20), Brushes.Black, 100, 40);
e.Graphics.DrawString("打印时间:" + DateTime.Now.ToString(), new Font("Arial", 8), Brushes.Red, 560, 100);
e.Graphics.DrawString("单号", new Font("Arial", 10), Brushes.Red, StartX, StartY);
e.Graphics.DrawString("批号", new Font("Arial", 10), Brushes.Red, StartX + 95, StartY);
e.Graphics.DrawString("区域编号", new Font("Arial", 10), Brushes.Red, StartX + 190, StartY);
e.Graphics.DrawString("品种", new Font("Arial", 10), Brushes.Red, StartX + 285, StartY);
e.Graphics.DrawString("规格", new Font("Arial", 10), Brushes.Red, StartX + 380, StartY);
e.Graphics.DrawString("计划发货数", new Font("Arial", 10), Brushes.Red, StartX + 475, StartY);
e.Graphics.DrawString("实际发货数", new Font("Arial", 10), Brushes.Red, StartX + 570, StartY);
e.Graphics.DrawString("发货日期", new Font("Arial", 10), Brushes.Red, StartX + 665, StartY);
e.Graphics.DrawString("员工编号", new Font("Arial", 10), Brushes.Red, StartX + 760, StartY);
4、从DataTable中读出数据
for (int row = 0; row < objDataTable.Rows.Count; row++)
{
DataRow objDataRow = objDataTable.Rows[row];
for (int i = 0; i < objDataTable.Columns.Count; i++)
{
e.Graphics.DrawString(objDataRow[i].ToString(), new Font("Arial", 9), Brushes.Black, StartX, StartY + 50);
e.Graphics.DrawString("-----------", new Font("Arial", 10), Brushes.Blue, StartX, StartY + 70);
StartX = StartX + 95;
}
StartX = 0;
StartY += 50;
}
四、然后打印 (也就是点击打印按钮或者别的控件)
1、设置显示页面的大小
printPreviewDialog1.PrintPreviewControl.Zoom = 1.0;
2、设置宽度和高度
printPreviewDialog1.Width = Screen.PrimaryScreen.Bounds.Width;
printPreviewDialog1.Height = Screen.PrimaryScreen.Bounds.Height;
printPreviewDialog1.ShowDialog();