單據套打WINFORM實現,帶預覽功能

昨天公司要打單子而不是以前的手寫

爲了實現這樣的功能上網搜索了一下

http://blog.csdn.net/fwj380891124/article/details/8071801

這篇文章來入門,不過發現無法實現套打功能,把所有的信息都打出來了

 對代碼進行了一定的調整,並且可以預覽,去除了預覽頁面的打印功能


下面是我寫的程序

1.      新建立一個WINFORM項目

2.      添加一個panel 做爲要打印的內容展示,背景設置爲上面的圖片

3.      增加printDocument1,printDialog1,printPreviewDialog1,pageSetupDialog1  Document設置爲


4.      增加三個按鈕,及幾個textbox

 

private voidbutton1_Click(object sender, EventArgs e)
        {
            this.pageSetupDialog1.ShowDialog();
        }
 
        privatevoid button2_Click(objectsender,EventArgs e)
        {
            //注意指定其Document(獲取或設置要預覽的文檔)屬性
            this.printPreviewDialog1.Document=this.printDocument1;
            //ShowDialog方法:將窗體顯示爲模式對話框,並將當前活動窗口設置爲它的所有者
            this.printPreviewDialog1.PrintPreviewControl.Zoom= 1.0;
            //將打印按鈕重新設置
            ToolStriptool = this.printPreviewDialog1.Controls["toolStrip1"]asToolStrip;
            if(tool != null)
            {
                intindexPrint = tool.Items.IndexOfKey("printToolStripButton");
                if(indexPrint != -1)
                {
                 tool.Items[indexPrint].Visible = false;
                }
            }
            this.printPreviewDialog1.ShowDialog();
        }
 
        privatevoid button3_Click(objectsender,EventArgs e)
        {
            PrintDialogpdia = new PrintDialog();
             PrintDocumentpdoc =newPrintDocument();
            pdoc.PrintPage += newPrintPageEventHandler(printDocument_PrintPage);
            if(pdia.ShowDialog() ==DialogResult.OK)
            {
                pdoc.Print();
            }
        }
 
        privatevoid printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Fontfont = new Font("宋體", 12);
            Brushbru = Brushes.Black;
            Imagebitmap = new Bitmap(panel1.BackgroundImage.Width,panel1.BackgroundImage.Height);
            Graphicsg = e.Graphics;  //先建立畫布
            g.DrawImage(bitmap, 0, 0);
            intx = 0;//調整位置信息
            inty = 0;
            foreach(Control iteminpanel1.Controls)
            {
                if(item is TextBox)
                {
                    Controltx = (itemasControl);
                    g.DrawString(tx.Text,font,bru, tx.Left + x, tx.Top + y);
                }
            }
        }
 
        privatevoid printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Fontfont = new Font("宋體", 12);
            Brushbru = Brushes.Black;
            Graphicsg = e.Graphics;  //先建立畫布
            intx = 0;
            inty = 0;
            g.DrawImage(panel1.BackgroundImage,0, 0);
            foreach(Control iteminpanel1.Controls)
            {
                if(item is TextBox)
                {
                    Controltx = (itemasControl);
                    g.DrawString(tx.Text, font,bru, tx.Left + x, tx.Top + y);
                }
            }
        }


 爲了方便大家改寫可去下載項目文件及源代碼 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章