打印方法总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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表示图像);

--------------------------------------------------------------------------------

相关文档
最新文档