[转]单据套打WINFORM实现,带预览功能

本文转自:https://blog.csdn.net/lyflcear/article/details/22795053

昨天公司要打单子而不是以前的手写

为了实现这样的功能上网搜索了一下

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

这篇文章来入门,不过发现无法实现套打功能,把所有的信息都打出来了

 对代码进行了一定的调整,并且可以预览,去除了预览页面的打印功能

 

下面是我写的程序

1.      新建立一个WINFORM项目

2.      添加一个panel 做为要打印的内容展示,背景设置为上面的图片

3.      增加printDocument1,printDialog1,printPreviewDialog1,pageSetupDialog1  Document设置为

4.      增加三个按钮,及几个textbox

 

 

 

[csharp]  view plain  copy
 
  1. private voidbutton1_Click(object sender, EventArgs e)  
  2.         {  
  3.             this.pageSetupDialog1.ShowDialog();  
  4.         }  
  5.    
  6.         privatevoid button2_Click(objectsender,EventArgs e)  
  7.         {  
  8.             //注意指定其Document(获取或设置要预览的文档)属性  
  9.             this.printPreviewDialog1.Document=this.printDocument1;  
  10.             //ShowDialog方法:将窗体显示为模式对话框,并将当前活动窗口设置为它的所有者  
  11.             this.printPreviewDialog1.PrintPreviewControl.Zoom= 1.0;  
  12.             //将打印按钮重新设置  
  13.             ToolStriptool = this.printPreviewDialog1.Controls["toolStrip1"]asToolStrip;  
  14.             if(tool != null)  
  15.             {  
  16.                 intindexPrint = tool.Items.IndexOfKey("printToolStripButton");  
  17.                 if(indexPrint != -1)  
  18.                 {  
  19.                  tool.Items[indexPrint].Visible = false;  
  20.                 }  
  21.             }  
  22.             this.printPreviewDialog1.ShowDialog();  
  23.         }  
  24.    
  25.         privatevoid button3_Click(objectsender,EventArgs e)  
  26.         {  
  27.             PrintDialogpdia = new PrintDialog();  
  28.              PrintDocumentpdoc =newPrintDocument();  
  29.             pdoc.PrintPage += newPrintPageEventHandler(printDocument_PrintPage);  
  30.             if(pdia.ShowDialog() ==DialogResult.OK)  
  31.             {  
  32.                 pdoc.Print();  
  33.             }  
  34.         }  
  35.    
  36.         privatevoid printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)  
  37.         {  
  38.             Fontfont = new Font("宋体", 12);  
  39.             Brushbru = Brushes.Black;  
  40.             Imagebitmap = new Bitmap(panel1.BackgroundImage.Width,panel1.BackgroundImage.Height);  
  41.             Graphicsg = e.Graphics;  //先建立画布  
  42.             g.DrawImage(bitmap, 0, 0);  
  43.             intx = 0;//调整位置信息  
  44.             inty = 0;  
  45.             foreach(Control iteminpanel1.Controls)  
  46.             {  
  47.                 if(item is TextBox)  
  48.                 {  
  49.                     Controltx = (itemasControl);  
  50.                     g.DrawString(tx.Text,font,bru, tx.Left + x, tx.Top + y);  
  51.                 }  
  52.             }  
  53.         }  
  54.    
  55.         privatevoid printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)  
  56.         {  
  57.             Fontfont = new Font("宋体", 12);  
  58.             Brushbru = Brushes.Black;  
  59.             Graphicsg = e.Graphics;  //先建立画布  
  60.             intx = 0;  
  61.             inty = 0;  
  62.             g.DrawImage(panel1.BackgroundImage,0, 0);  
  63.             foreach(Control iteminpanel1.Controls)  
  64.             {  
  65.                 if(item is TextBox)  
  66.                 {  
  67.                     Controltx = (itemasControl);  
  68.                     g.DrawString(tx.Text, font,bru, tx.Left + x, tx.Top + y);  
  69.                 }  
  70.             }  
  71.         }  



 

 为了方便大家改写可去下载项目文件及源代码 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值