windows组件打印

1.在Form窗体拖入打印控件,命名设置如下:

  1. pageSetupDialog:     name:pageSetupDialog1       Document设为printDocument控件的实例
  2. printDialog:            name:printDialog2                Document设为printDocument控件的实例
  3. printDocument:        name:pdocOrderDetails         PrintPage事件:pdocOrderDetails_PrintPage
  4. printPreviewDialog:name:printDialog2                Document设为printDocument控件的实例
  5. printPreviewDialog:name:ppdlgOrderDetails        Document设为printDocument控件的实例

打印设置按钮事件:

private void btnSetup_Click(object sender, EventArgs e)
{
    
this.pageSetupDialog1.ShowDialog();
}

 

打印预览按钮事件:

private void btnPrintPrev_Click(object sender, EventArgs e)
{
    
this.printPreviewDialog1.ShowDialog();
}

 

打印按钮事件:

private void btnPrint_Click(object sender, EventArgs e)
{
   
if (this.printDialog2.ShowDialog() == DialogResult.OK)
   {
      
this.pdocOrderDetails.Print();
   }
}

 

PrintPage事件:

代码

private void pdocOrderDetails_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            //设置字体和和画刷
            Font objFont = new Font("Tahoma", 11, FontStyle.Regular);
            Brush objBrush = Brushes.Black;
            Pen objPen = new Pen(objBrush);
            objPen.Width = 2;

            //向打印预览按钮添加内容
            int nLeft = this.pageSetupDialog1.PageSettings.Margins.Left;
            int nTop = this.pageSetupDialog1.PageSettings.Margins.Top;
            int nWidth = this.pageSetupDialog1.PageSettings.PaperSize.Width - (this.pageSetupDialog1.PageSettings.Margins.Left + this.pageSetupDialog1.PageSettings.Margins.Right);
            int nHeight = this.pageSetupDialog1.PageSettings.PaperSize.Height - (this.pageSetupDialog1.PageSettings.Margins.Top + this.pageSetupDialog1.PageSettings.Margins.Bottom);

            //画出页面有效区域
            //e.Graphics.DrawString("客户姓名", new Font("Garamond", 40, FontStyle.Bold), Brushes.Blue, nLeft + 30, nTop + 10);
            e.Graphics.DrawString("客户姓名", objFont, objBrush, nLeft, nTop + 60);
            e.Graphics.DrawString("客户卡号", objFont, objBrush, nLeft + 70, nTop + 60);
            e.Graphics.DrawString("客户生日", objFont, objBrush, nLeft + 160, nTop + 60);
            e.Graphics.DrawString("客户邮箱", objFont, objBrush, nLeft + 250, nTop + 60);
            e.Graphics.DrawString("手机号码", objFont, objBrush, nLeft + 420, nTop + 60);
            e.Graphics.DrawString("客户地址", objFont, objBrush, nLeft + 540, nTop + 60);

            try
            {
                T_MembersInfoTableAdapter adpMember = new T_MembersInfoTableAdapter();
                DAL.DS_MembersInfo.T_MembersInfoDataTable tbMember = adpMember.GetData();

                int nLine = 1;
                foreach (DAL.DS_MembersInfo.T_MembersInfoRow rowMember in tbMember)
                {
                    e.Graphics.DrawString(rowMember.sName, objFont , objBrush, nLeft, nTop+60+nLine*30);
                    e.Graphics.DrawString(rowMember.sCartId, objFont, objBrush, nLeft + 70, nTop + 60 + nLine * 30);
                    e.Graphics.DrawString(rowMember.dBirthday.ToShortDateString(), objFont, objBrush, nLeft + 160, nTop + 60 + nLine * 30);
                    e.Graphics.DrawString(rowMember.sEmail, objFont, objBrush, nLeft + 250, nTop + 60 + nLine * 30);
                    e.Graphics.DrawString(rowMember.sMobile, objFont, objBrush, nLeft + 420, nTop + 60 + nLine * 30);
                    e.Graphics.DrawString(rowMember.sAddress, objFont, objBrush, nLeft + 540, nTop + 60 + nLine * 30);

                    nLine++;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("程序错误" + ex);
                this.Close();
            }
        }

posted @ 2010-07-23 12:30  凭栏处  阅读(484)  评论(0编辑  收藏  举报