using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
using System.Data;
using System;
#region //打印需要的成员
private static System.Drawing.Font TableFont = new System.Drawing.Font("Verdana", 10, FontStyle.Regular);//表头字体
private System.Drawing.Font HeadFont = new System.Drawing.Font("Verdana", 20, FontStyle.Bold);
//表头文字
private string HeadText = string.Empty;
//表头高度
private int HeadHeight = 40;
//表的基本单位
private int[] XUnit;
private int YUnit = TableFont.Height * 2;
//以下为模块内部使用
private PrintDocument DataTablePrinter;
private DataRow DataGridRow;
private DataTable DataTablePrint;
//当前要所要打印的记录行数,由计算得到
private int PageRecordNumber;
//正要打印的页号
private int PrintingPageNumber = 1;
//已经打印完的记录数
private int PrintRecordComplete;
private int PLeft;
private int PTop;
//private int PRight;
private int PBottom;
private int PWidth;
private int PHeigh;
//当前画笔颜色
private SolidBrush DrawBrush = new SolidBrush(Color.Black);
//每页打印的记录条数
private int PrintRecordNumber;
//第一页打印的记录条数
private int FirstPrintRecordNumber;
//总共应该打印的页数
private int TotalPage;
//与列名无关的统计数据行的类目数(如,总计,小计......)
public int TotalNum = 0;
#endregion
#region //打印
private void btnDY_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt = (DataTable)dataGridView1.DataSource; //打印的数据源
string Title = "报表";
CreatePrintDocument(dt, Title).Print();
}
#endregion
#r