C#打印类

来源:互联网 发布:合肥行知中学报名条件 编辑:程序博客网 时间:2024/06/09 18:59


    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) ;

        }

原创粉丝点击