[转]单据套打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
- 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);
- }
- }
- }
为了方便大家改写可去下载项目文件及源代码
[转]单据套打WINFORM实现,带预览功能的更多相关文章
- 上传图片带预览功能兼容IE和火狐等主流浏览器
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JAVA图片批量上传JS-带预览功能
这篇文章就简单的介绍一个很好用的文件上传工具,批量带预览功能.直接贴代码吧,都有注释,很好理解. HTML页面 <!DOCTYPE html> <%@ taglib prefix=& ...
- 可拖拽和带预览图的jQuery文件上传插件ssi-uploader
插件描述:ssi-uploader是一款带预览图并且可以拖拽文件的jQuery ajax文件上传插件.该文件上传插件支持AJAX,支持多文件上传,可控制上的文件格式和文件大小,提供各种回调函数,使用非 ...
- JAVA打印类(带预览)
package tool; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; ...
- FileUpload控件实现单按钮图片自动上传并带预览显示
FileUpload控件实现单按钮图片自动上传并带预览显示 1.实现原理: FileUpload控件默认不支持服务端的ONCHANGE事件,此时用一种变通的方法借用客户端的onchange事件,调 ...
- Asp.net实现同页面内多图片自动上传并带预览显示
FileUpload控件实现单按钮图片自动上传并带预览显示 1.实现原理: 此方法适合针对有后台生成的图片相关内容,例如购物网站商品展示页面中的封面图片,图片的数量由后台访问数据库,并加载到页面.这种 ...
- 为Dynamics CRM注释的图片附件做个预览功能
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复163或者20151017可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! Dynamics CRM中注释可 ...
- Java实现office文档与pdf文档的在线预览功能
最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...
- 分离与继承的思想实现图片上传后的预览功能:ImageUploadView
本文要介绍的是网页中常见的图片上传后直接在页面生成小图预览的实现思路,考虑到该功能有一定的适用性,于是把相关的逻辑封装成了一个ImageUploadView组件,实际使用效果可查看下一段的git效果图 ...
随机推荐
- [mysql] mysql 查询语句收集
// 1. 筛选出当天的中奖名单 $where = " date_format(f_ctime,'%Y-%m-%d') = current_date()"; ...
- brctl命令
有五台主机.其中一台主机装有linux ,安装了网桥模块,而且有四块物理网卡,分别连接同一网段的其他主机.我们希望其成为一个网桥,为其他四台主机(IP分别为192.168.1.2 ,192.168.1 ...
- JAVA学习笔记1——环境配置
·JDK 发展史 1995 java语言诞生 1996 JDK1.0发布 1997 JDK1.1发布 1998 JDK1.2发布(Java2),JFC/Swing技术发布 1999 Java被分成了J ...
- UWP Background过渡动画
首先说两件事: 1.大爆炸我还记着呢,先欠着吧... 2.博客搬家啦,新地址:https://blog.ultrabluefire.cn/ ==========下面是正文========== 前些日子 ...
- 【转】C# 之泛型详解
原文地址:https://www.cnblogs.com/yueyue184/p/5032156.html 什么是泛型 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一 ...
- C语言实现windows进程遍历
#include <windows.h> #include <tlhelp32.h> //进程快照函数头文件 #include <stdio.h> int main ...
- IE6下javascript:void(0)不可用的解决
<a href="javascript:void(0)" class="inp_sear_a" onclick="doSubmit();&quo ...
- ubuntu下nodejs源码安装
1.从github选择下载自己要安装的nodejs版本,https://github.com/nodejs/node/releases,我下载的版本是node-9.11.2.tar.gz 2.解压no ...
- InfluxDB配置文件详解
全局配置 # 该选项用于上报influxdb的使用信息给InfluxData公司,默认值为false reporting-disabled = false # 备份恢复时使用,默认值为8088 bin ...
- Flask 微博三方登录
1.进入微博开发平台(https://open.weibo.com/),注册账号,填写开发者信息 2.创建应用.创建应用完成后,可以在"我的应用 - 应用信息"中查看您所创建应用的 ...