怎样打印dataGridView数据 请写明注释

解决方案 »

  1.   

    using System;
        using System.ComponentModel;
        using System.Windows.Forms;
        using System.Drawing;
        using System.Drawing.Printing;
        using System.IO;
        using System.Data ;
        using System.Data.SqlClient ;
       
        /// <summary>
        /// 打印DataGrid中的数据到打印机
        ///
        /// </summary>
        public class DataGridPrintDocument : PrintDocument
        {
            //打印字体
            private Font printFont = null;
            private DataTable dt=null;        //当前页码
            private int currentPageNumber=1;
            //是否打印页码
            private bool isPrintPageNumber=false;
            public bool IsPrintPageNumber
            {
                get
                {
                    return this.isPrintPageNumber ;
                }
                set
                {
                    this.isPrintPageNumber =value;
                }
            }
            //表格文字对齐方式:0:居左;1:居中;2:居右
            private int ColStyle=0;
            public int TableColStyle
            {
                get
                {
                    return this.ColStyle;
                }
                set
                {
                    this.ColStyle=value;
                }
            }
            //是否需要竖线
            private bool isNeedVertLine=false;
            public bool IsNeedVertLine
            {
                get
                {
                    return this.isNeedVertLine;
                }
                set
                {
                    this.isNeedVertLine=value;
                }
            }
            //是否需要横线
            private bool isNeedHorLine=false;
            public bool IsNeedHorLine
            {
                get
                {
                    return this.isNeedHorLine;
                }
                set
                {
                    this.isNeedHorLine=value;
                }
            }
            //表体中文字和表格线的间隔比例
            private float LineEmpty=1.3F;
            public float LineEmptyCharacter
            {
                get
                {
                    return this.LineEmpty;
                }
                set
                {
                    this.LineEmpty=value;
                }
            }
            //指定每页打印表格行数,如果超过纸张的高度就取默认值
            private int LinePerPage=0;
            public int LinePerNumberPage
            {
                get
                {
                    return this.LinePerPage ;
                }
                set
                {
                    this.LinePerPage=value;
                }
            }
            //当前行号
            private int currentLineNumber=0;
            //表格列标题
            private string[] colname=null;
            //标题一
            private string headtitle1=null;
            public string HeadTitle1
            {
                get
                {
                    return this.headtitle1;
                }
                set
                {
                    this.headtitle1=value;
                }
            }
            //标题二
            private string headtitle2=null;
            public string HeadTitle2
            {
                get
                {
                    return this.headtitle2;
                }
                set
                {
                    this.headtitle2=value;
                }
            }
            //标题三
            private string headtitle3=null;
            public string HeadTitle3
            {
                get
                {
                    return this.headtitle3;
                }
                set
                {
                    this.headtitle3=value;
                }
            }
            //标题四一
            private string headtitle41=null;
            public string HeadTitle41
            {
                get
                {
                    return this.headtitle41;
                }
                set
                {
                    this.headtitle41=value;
                }
            }
            //标题四二
            private string headtitle42=null;
            public string HeadTitle42
            {
                get
                {
                    return this.headtitle42;
                }
                set
                {
                    this.headtitle42=value;
                }
            }
            //标题四三
            private string headtitle43=null;
            public string HeadTitle43
            {
                get
                {
                    return this.headtitle43;
                }
                set
                {
                    this.headtitle43=value;
                }
            }
            //页尾一一
            private string tailtitle11=null;
            public string TailTitle11
            {
                get
                {
                    return this.tailtitle11 ;
                }
                set
                {
                    this.tailtitle11 =value;
                }
            }
            //页尾一二
            private string tailtitle12=null;
            public string TailTitle12
            {
                get
                {
                    return this.tailtitle12;
                }
                set
                {
                    this.tailtitle12 =value;
                }
            }
            //页尾一三
            private string tailtitle13=null;
            public string TailTitle13
            {
                get
                {
                    return this.tailtitle13 ;
                }
                set
                {
                    this.tailtitle13=value;
                }
            }
            //页尾二
            private string tailtitle2=null;
            public string TailTitle2
            {
                get
                {
                    return this.tailtitle2;
                }
                set
                {
                    this.tailtitle2 =value;
                }
            }
            //每页打印DataGrid中数据行数
            private int numsPerPage;
            //要打印的DataGrid控件
            private DataGrid printDataGrid =null;
            public DataGrid PrintDataGrid
            {
                get
                {
                    return this.printDataGrid ;
                }
                set
                {
                    this.printDataGrid =value;
                }
            }
            private void LoadTestDB()
            {
            }
            /// <summary>
            /// 构造器一
            /// </summary>
            public DataGridPrintDocument(DataGrid dataGrid,string[] ColName)
            {
                this.printDataGrid  = dataGrid ;
                this.printFont = dataGrid.Font;
                this.colname =ColName;
                dt=(DataTable)this.printDataGrid.DataSource;
                //LoadTestDB();
            }        /// <summary>
            /// 构造器二
            /// </summary>
            /// <param name="dataGrid">要打印的DataGrid控件</param>
            public DataGridPrintDocument(DataGrid dataGrid)
            {
                this.printDataGrid  = dataGrid ;
                this.printFont = dataGrid.Font;
            }        //Override OnBeginPrint to set up the font we are going to use
            protected override void OnBeginPrint(PrintEventArgs ev)
            {
                base.OnBeginPrint(ev) ;        }