本文转自: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

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

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

[转]单据套打WINFORM实现,带预览功能的更多相关文章

  1. 上传图片带预览功能兼容IE和火狐等主流浏览器

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. JAVA图片批量上传JS-带预览功能

    这篇文章就简单的介绍一个很好用的文件上传工具,批量带预览功能.直接贴代码吧,都有注释,很好理解. HTML页面 <!DOCTYPE html> <%@ taglib prefix=& ...

  3. 可拖拽和带预览图的jQuery文件上传插件ssi-uploader

    插件描述:ssi-uploader是一款带预览图并且可以拖拽文件的jQuery ajax文件上传插件.该文件上传插件支持AJAX,支持多文件上传,可控制上的文件格式和文件大小,提供各种回调函数,使用非 ...

  4. JAVA打印类(带预览)

    package tool; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; ...

  5. FileUpload控件实现单按钮图片自动上传并带预览显示

    FileUpload控件实现单按钮图片自动上传并带预览显示 1.实现原理:   FileUpload控件默认不支持服务端的ONCHANGE事件,此时用一种变通的方法借用客户端的onchange事件,调 ...

  6. Asp.net实现同页面内多图片自动上传并带预览显示

    FileUpload控件实现单按钮图片自动上传并带预览显示 1.实现原理: 此方法适合针对有后台生成的图片相关内容,例如购物网站商品展示页面中的封面图片,图片的数量由后台访问数据库,并加载到页面.这种 ...

  7. 为Dynamics CRM注释的图片附件做个预览功能

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复163或者20151017可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! Dynamics CRM中注释可 ...

  8. Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  9. 分离与继承的思想实现图片上传后的预览功能:ImageUploadView

    本文要介绍的是网页中常见的图片上传后直接在页面生成小图预览的实现思路,考虑到该功能有一定的适用性,于是把相关的逻辑封装成了一个ImageUploadView组件,实际使用效果可查看下一段的git效果图 ...

随机推荐

  1. jar包获取资源文件

    背景 写的一个spring boot项目打成jar包部署运行下,打成jar包,提示找不到资源文件,如下图: 直接通过idea是可以运行的,但打成jar包后提示找不到资源文件,简单查阅后了解到是因为ja ...

  2. IIS8.0配置网站,错误提示:用户 'IIS APPPOOL\你的网站名称'登录失败

    项目在vs2013中能正常运行,配置到服务器(windows2012+IIS8.0),运行提示用户 'IIS APPPOOL\DefaultAppPool' 登录失败. 解决方案: 比如我的网站取名m ...

  3. [翻译] ASP.NET WebAPI 中的异常处理

    原文链接:https://docs.microsoft.com/en-us/aspnet/web-api/overview/error-handling/exception-handling 本文介绍 ...

  4. 重写TreeView,多层级节点下批量显示图片,图片支持缩略图和文件名列表切换,支持调用者动态匹配选中,支持外界拖入图片并添加到对应节点下

    1.先看下整体效果 2.前端代码 <UserControl x:Class="iPIS.UI.Base.Tree.ImageTreeControl" xmlns=" ...

  5. 利用adb 打开手机应用程序

    通过adb打开android应用,我们需要做的第一步,就是查看当前app的入口,第二部,就是通过命令启动我们的app入口 查看app的启动画面 在运行下面命令时,先启动想要通过adb打开的app #查 ...

  6. python -猜字小游戏

    代码运行效果如下: 注意: 1.必须要在python3环境想使用 2.QQ:3084276329(一起交流学习) 3.还请大家评论 Guess the word game代码如下: #! /usr/b ...

  7. cytoscape.js在vue项目中的安装及案例

    1. 安装: npm i cytoscape --save 2. 引入:main.js import cytoscape from 'cytoscape'; Vue.prototype.$cytosc ...

  8. 创建python3虚拟环境指令和冻结所安装的包

    mkvirtualenv file_name -p python3 去掉后面的 P 和python3 代表创建python2环境 其中p代表路径的意思 冻结所安装包命令 pip freeze > ...

  9. JavaScript概念之screen/client/offset/scroll/inner/avail的width/left 分类: JavaScript HTML+CSS 2015-05-27 16:42 635人阅读 评论(0) 收藏

    原文地址:http://caibaojian.com/js-name.html JS中获取各种宽度和距离,常常让我们混淆,各种浏览器的不兼容让我们很头疼,现在就在说说js中有哪些宽度和距离. 1.名词 ...

  10. 【原创】基于Bootstrap的Modal二次封装

    前言 Bootstrap:Twitter推出的一个开源的用于前端开发的工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架 官方网站: ...