您的位置:首页 > 其它

winform实现发票打印功能

2012-10-15 10:05 309 查看
各位博友,好久没有更新博客了,前两天一个交流中的好友研究了一套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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: