打印方法总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、放三个有关打印的控件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();
在C#中使用PrintDialog可以很方便的实现程序的打印功能。
其步骤如下:
创建一个PrintDialog的实例。如下:
System.Windows.Forms.PrintDialog PrintDialog1=new PrintDialog ();
创建一个PrintDocument的实例.如下:
System.Drawing.Printing.PrintDocument docToPrint =
new System.Drawing.Printing.PrintDocument();
设置打印机开始打印的事件处理函数.函数原形如下:
void docToPrint_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e)
将事件处理函数添加到PrintDocument的PrintPage事件中。
docToPrint.PrintPage+=new PrintPageEventHandler(docToPrint_PrintPage);
设置PrintDocument的相关属性,如:
PrintDialog1.AllowSomePages = true;PrintDialog1.ShowHelp = true;
把PrintDialog的Document属性设为上面配置好的PrintDocument的实例:
PrintDialog1.Document = docToPrint;
调用PrintDialog的ShowDialog函数显示打印对话框:
DialogResult result = PrintDialog1.ShowDialog();
根据用户的选择,开始打印:
if (result==DialogResult.OK)
{
docToPrint.Print();
}
例子如下:
使用时先创建PrintService类的实例,然后调用void StartPrint(Stream streamToPrint,string streamType)函数开始打印。其中streamToPrint是要打印的内容(字节流),streamType是流的类型(txt表示普通文本,image表示图像);
--------------------------------------------------------------------------------