本文转自: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. Apollo 配置详细步骤(Windows环境)

    一. 准备工作 1.下载 apollo 安装包 下载链接:http://activemq.apache.org/apollo/download.html 2.下载 JavaJDK 安装包 ( apol ...

  2. Excel VBA语句集

    Excel VBA语句集 引子 最近批阅学生成绩,用Excel 处理学生成绩,用到VBA 提高办公效率.需要经常查阅VBA的一些用法 正文 定制模块行为 (1) Option Explicit '强制 ...

  3. asp.net web api 跨域问题

    缘起 以前在asp.net mvc时代,很少出现跨域问题 自从使用了asp.net web api + angular (1/2)之后,开始有跨域问题了. 简单普及下跨域: 我的理解是只要是前台页面与 ...

  4. [Word]让字符重合显示

    某些时候需要让字符重合显示,比如您好二字,显示为: 需要用到word的Advance域,他可以让后面的文字上下左右移动一定的磅. 譬如上面你好的显示:word中域代码为: 意思是好字向left移动了2 ...

  5. delphi datetimepicker 修改时间无效问题

    今天用delphi写个程序,使用datetimepicker获得想要的时间.蛋疼的问题是无论怎么调整明明看着控件里面的日期变了,但是show出来的datetimepicker.datetime日期都不 ...

  6. 给Ubuntu18.04安装mac os主题<转载>

     给Ubuntu18.04安装mac os主题 转载来自 https://www.cnblogs.com/feipeng8848(作者) 参考文献 https://linuxhint.com/gnom ...

  7. 使用反射功能在Unity运行状态通过Inspector面板修改字段和调用方法

    使用反射功能在Unity运行状态通过Inspector面板修改字段和调用方法 效果展示 一个很简单的组件脚本 运行状态在Inspector面板可以随便修改字段和调用方法 方法调用日志 设计由来 最近在 ...

  8. 【LeetCode】547. 朋友圈

    题目 班上有 N 名学生.其中有些人是朋友,有些则不是.他们的友谊具有是传递性.如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友.所谓的朋友圈,是指所有朋友的集 ...

  9. 解决Fiddler抓不到HTPPS

    刚开始启动Fiddler,设置代理后,直接打开浏览器,输入我们最记得的网址“baidu.com”,发现Fiddler什么都抓不到,这是为什么呢?难道是我的配置有问题,重新检查一下,浏览器的代理已经设置 ...

  10. windows 系统安装git的方法

    windows 系统安装git的方法 msysgit是Windows版的Git,从https://git-for-windows.github.io下载 安装默认步骤,一步步安装即可 安装完成后,在开 ...