Winfrom打印表单

Winfrom常常会涉及到打印功能。网上最多的打印是关于 GridView之类的列表形式打印。

Google可以搜索到很多 拿来就可以用的Code。

 

本随笔记录下自己遇到的Winfrom 表单的打印。

效果如下图:

 

我们开始打开VS设计这样的表单:在设计表单方面有个小技巧,可以提高布局的速度与准确性。

1.截图.即截取需要打印的表单格式的图片。例如我需要打印上面的表单,客户一般会提供给我相应的Excel,我使用截图工具截取图片保存于本地。

2.点击vs中设置From的属性:背景图片设置刚刚我们所截取的图。有点要说明的是,截图这块需要注意的是,QQ截图与Window自带的截图都会存在阴影,影响显示效果,建议使用其他的截图工具,我使用的是PicPick.

 

如果你照着一上来做,一般会出现以下效果。

这样就可以快速的布局到客户想要的模样了,是不是很快呢,在空白的地方拖上TextBox控件,开始界面设计的结尾工作吧。

3.开始打印吧。

通常情况我开始打印是这样想的,先画个表格,在再表格只里面安装以上的布局里面绘制各个不同的标签。

按照以上思路忽然发现工作量不小, 而且这个表格还有合并这类的。

有没有更简单的方法呢。

答案就是我写这篇博客的原因。

  1   privatevoid printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)

 2          {
 3              Graphics g  =  e.Graphics;    // 先建立画布 
 4               int  x  =   80 ;
 5               int  y  =   60 ;
 6              g.DrawImage( this .BackgroundImage,  50 50 );
 7               foreach  (Control item  in   this .Controls)
 8              {
 9                   if  (item  is  TextBox)
10                  {
11                      Control tx  =  (item  as  Control);
12                      g.DrawString(tx.Text, tx.Font, Brushes.Black, tx.Left  +  x, tx.Top  +  y); 
13                  }
14 
15              }
16          }

短短的代码一下子解放了我,忽然觉得世界是 美好的。

好了。开始运行我们的程序吧。

点击打印,看看效果是不是我们想要的?

 

呵呵。。。样子是我们需要的。。。让我们在填上内容看看吧。

 

再来打印下看看。奇迹出现吧。

 

是的,这样我们的任务就完成了。。。

代码比较简单,主要还是在解决这件事情上的思想,按照常规的来,可能需要付出一些计算时间,和调试时间。

当然我想有更多的人可能想到的比我更好、更简单 如果你是,还请您留言分享与我。谢谢 

 --------------------------------------------------------------------------------------------------------------------

不知道是否有必要把代码解释下?截个图说明下吧。如果能帮助到您,感到十分的荣幸。 

 

 

 

转载于:https://www.cnblogs.com/liushaoyu/archive/2011/03/04/JadeLiu.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值