[转]单据套打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);
- }
- }
- }
为了方便大家改写可去下载项目文件及源代码
posted on 2018-05-31 14:34 freeliver54 阅读(565) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步