winform实现发票打印功能

来源:互联网 发布:java就业培训班 编辑:程序博客网 时间:2024/05/17 05:57

         各位博友,好久没有更新博客了,前两天一个交流中的好友研究了一套winform中的打印功能,再此向这位好友【杭州-andy】表示感谢,感谢他提供这么好的素材让大家学习。

         直入主题,实现这个打印功能,只需要3个主要的打印控件,printDocument,printDialog,printPreviewDialog。

先介绍一下整体思路:

        A首先打开VS2005新建项目,为默认的Form1设置你已经做好的发票模板图片为背景。

        B在需要使用动态信息的地方放入TextBox控件,动态显示要打印的信息,当然你用Lable也可以,我这位朋友在开发中使用的是TextBox这里我就用TextBoX来讲了。

        C在PrintDocument控件的PrintPage事件里面编写代码,将整个动态内容结合到背景图片,整合为一张图片,具体代码如下:

         

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)        {            Graphics g = e.Graphics;   //先建立画布             int x = 80;            int y = 60;            g.DrawImage(this.BackgroundImage, 50, 50);            foreach (Control item in this.Controls)            {                if (item is TextBox)                {                    Control tx = (item as Control);                    g.DrawString(tx.Text, tx.Font, Brushes.Black, tx.Left + x, tx.Top + y);                }            }        }
        然后在预览按钮Click事件里面添加如下代码:

  //注意指定其Document(获取或设置要预览的文档)属性            this.printPreviewDialog1.Document = this.printDocument1;            //ShowDialog方法:将窗体显示为模式对话框,并将当前活动窗口设置为它的所有者            this.printPreviewDialog1.ShowDialog();

         自此,一个完整的打印功能就实现了,虽然看似简单,但是还是倾注了一些精力,再次感谢Andy提供源码,有需要的朋友可以下载源码观看,源码将在后面上传

         源码下载地址:http://download.csdn.net/detail/fwj380891124/4647497

          强烈建议系统管理员推荐至CSDN首页

         大家有什么好的打印也可以推荐下,大家互相学习,这样我们才能更加强大。Thank You!

原创粉丝点击