winform打印及预览

这篇博客介绍了如何在C# WinForm应用程序中实现数据的打印和预览功能。通过创建PrintDocument对象,设置数据源和标题,然后利用PrintPage事件处理程序绘制表格内容,实现了对DataTable数据的打印。同时,展示了如何设置打印预览对话框,并调整页面布局以适应不同的打印需求。
摘要由CSDN通过智能技术生成

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值