C#打印功能实现

帮朋友做了一个标签打印的程序,已经完成了。做的过程中查了些资料。网上能查到的文章也就知道个大概,所以结合MSDN是必须的。以下是开发步骤。

一、涉及到的控件及类:

1、System.Windows.Forms.PrintDialog  实现打印前提示选择打印机的对话框。我们平时windows打印总会遇到的。 

关键代码:

DialogResult result = this.printDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
               //开始打印。                
            }

(注:printDialog1 ,printDocument1 对应两个控件,直接在窗体进行拖拽,让开发环境自动生成。)

2、System.Drawing.Printing.PrintDocument  控制打印以及设置打印内容的控件。

关键代码:

this.printDocument1.DocumentName = "打印文档的名称"; //设置本次打印内容的名称
 this.printDocument1.Print();         //开始执行打印。

相关事件:

PrintPage:打印开始后响应的事件,可以在这里初始化或者设置打印的内容。

EndPage:打印结束后响应的事件,可以在这里进行内存释放等操作。

 

以下是我的打印实现所有代码:

 public partial class PrintForm : Form
    {

        //打印内容存放的变量,可根据具体需要自己设定
        private string depart = null;
        private string h_name = null;
        private string pub_name = null;
        private string h_price = null;
        private string h_count = null;
       

       //变量赋值,都是java写法,习惯了。
        public void setDepart(string depart) {
            this.depart = depart;
        }
        public void setH_name(string h_name)
        {
            this.h_name = h_name;
        }
        public void setPub_name(string pub_name)
        {
            this.pub_name = pub_name;
        }
        public void setH_price(string h_price)
        {
            this.h_price = h_price;
        }
        public void setH_count(string h_count)
        {
            this.h_count = h_count;
        }

 

        public PrintForm()
        {
            InitializeComponent();

            //创建窗体对象是为打印对话空间赋值
            this.printDialog1.AllowSomePages = true;
            this.printDialog1.ShowHelp = true;      //是否显示帮助
            this.printDialog1.Document = this.printDocument1; //关联对话的打印控件
            
        }

//外部赋值

        public void setValue() {
            this.textBox1.Text = this.depart;
            this.textBox2.Text = this.h_name;
            this.textBox3.Text = this.pub_name;
            this.textBox4.Text = this.h_price;
            this.textBox5.Text = this.h_count;
        }

 

//打印按钮事件

        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult result = this.printDialog1.ShowDialog();         //打印对话框弹出窗口,返回结果
            if (result == DialogResult.OK)            //对话窗口确认则执行下面代码
            {
                this.printDocument1.DocumentName = "标签打印---" + this.h_name;  //设置本次打印内容名称
                this.printDocument1.Print();              //开始打印。
               
            }
        }

 

//打印开始后响应的时间。实现打印内容。

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Font titleFont = new Font("宋体", 12, FontStyle.Underline);   //设置打印字体
            //以下为将字符串发送到打印区域,其实this.textBox1.Text,打印字符串内容,titleFont为打印字体,Brushes.Black 打印采用的颜色,两个数字分别为Y,X左边。该坐标为打印机提供的打印范围左上角起的相对坐标。
            e.Graphics.DrawString(this.textBox1.Text, titleFont, Brushes.Black, 40, 40);

 

// e.Graphics 各类打印内容的实现,如要实现图像打印可以用方法e.Graphics.DraoImage();其他详细的请参考MSDN。

        }
    } 

 

以上即为打印的整个实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值