C#打印源码的具体实现是怎样的
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关C#打印源码的具体实现是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#打印源码也是打印控件的功能之一
千家信息网最后更新 2026年11月02日C#打印源码的具体实现是怎样的
本篇文章给大家分享的是有关C#打印源码的具体实现是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
C#打印源码也是打印控件的功能之一,这里介绍的C#打印源码可以实现自动打印处理,不过需要mdi文件的支持。
打印的原理是:生成mdi文件,系统碰到mdi的时候会自动以打印的方式处理。所以,不管用什么模板,什么方式;能在PrintPage事件处理中,生成一张要打印内容的图片就OK了!
C#打印源码如下:
#region 打印 private void btnPrint_Click(object sender, EventArgs e) { //打印预览 //PrintPreviewDialog ppd = new PrintPreviewDialog(); PrintDocument pd = new PrintDocument(); //设置边距 Margins margin = new Margins(20, 20, 20, 20); pd.DefaultPageSettings.Margins = margin; ////纸张设置默认 //PaperSize pageSize = new PaperSize("First custom size", 800, 600); //pd.DefaultPageSettings.PaperSize = pageSize; //打印事件设置 pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage); //ppd.Document = pd; //ppd.ShowDialog(); try { pd.Print(); } catch (Exception ex) { MessageBox.Show(ex.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error); pd.PrintController.OnEndPrint(pd, new PrintEventArgs()); } } //打印事件处理 private void pd_PrintPage(object sender, PrintPageEventArgs e) { string date = lblDate.Text; //当前日期 string flowId = lblFlowId.Text; //流水号 string payDate = PayDate.Year.ToString() + "年" + PayDate.Month.ToString() + "月"; //应收年月 string adminId = lblAdminId.Text; //操作员编号 string baseExpense = lblBaseExpense.Text; //应交基本费用 string fine = lblFine.Text; //罚款数目 string upExpense = lblUpExpense.Text; //上月上余 string actualExpense = txtActualExpense.Text; //实际应交费用 string chineseExpense = DecimalToChinese.ConvertSum(actualExpense); //实际应交费用的中文大写 //读取图片模板 Image temp = Image.FromFile(@"Receipts.jpg"); GetResultIntoImage(ref temp, UserId, flowId, date, baseExpense, fine, upExpense, actualExpense, chineseExpense, payDate, adminId); int x = e.MarginBounds.X; int y = e.MarginBounds.Y; int width = temp.Width; int height = temp.Height; Rectangle destRect = new Rectangle(x, y, width, height); e.Graphics.DrawImage(temp, destRect, 0, 0, temp.Width, temp.Height, System.Drawing.GraphicsUnit.Pixel); } /// /// 将收费结果填充到图片模板 /// private void GetResultIntoImage( ref Image temp, string userId, string flowId, string currentDate, string baseExpense, string fine, string upExpense, string actualExpense, string chineseExpense, string payDate, string adminName) { //读取图片模板 Graphics g = Graphics.FromImage(temp); Font f = new Font("宋体", 12); Brush b = new SolidBrush(Color.Black); //填充数据到图片模板(位置要在制作图片模板的时候度量好) g.DrawImage(temp, 0, 0, temp.Width, temp.Height); g.DrawString(userId, f, b, 168, 105); g.DrawString(UserName, f, b, 166, 134); g.DrawString(flowId, f, b, 535, 105); g.DrawString(currentDate, f, b, 535, 134); g.DrawString(baseExpense, f, b, 219, 202); g.DrawString(fine, f, b, 372, 202); g.DrawString(upExpense, f, b, 486, 202); g.DrawString(actualExpense, f, b, 596, 202); g.DrawString(chineseExpense, f, b, 196, 238); g.DrawString(payDate, f, b, 176, 269); g.DrawString(adminName, f, b, 497, 298); g.Dispose(); } #endregion以上就是C#打印源码的具体实现是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
图片
模板
源码
C#
处理
事件
费用
实际
文件
方式
时候
更多
知识
篇文章
生成
实用
位置
内容
功能
原理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海挚品互联网科技有限公司
互联网金融监管科技数据
互联网通讯科技
科技互联网政务服务
互联网科技公司税收优惠
互联网与科技发展
上海互联网科技有限公司
嘟嘟瓜互联网科技
互联网科技视频
互联网女皇 腾讯科技
广西互联网科技公司
润盈互联网科技
亿人帮互联网科技
阿里巴巴算科技企业还是互联网
互联网时代科技改变生活
恒生互联网科技业指数调整周期
北京市互联网新科技
中国新注册互联网科技
互联网公司属于科技吗
银川新华互联网科技学校招聘
湖北九亚互联网络科技有限公司
唐信互联网科技 大连
互联网科技论坛
青岛中康互联网医疗科技有限公司
民营互联网公司国防科技
南通创西澳互联网科技有限公司
广西科技产业互联网是什么
互联网科技创新创业项目
东风日产互联网科技公司叫什么
互联网科技创业有什么好项目