如何生成一张证书图片

本文介绍了如何生成证书图片的流程,包括在视图中获取证书信息,限制只能选择一条数据,通过证书ID在控制器中查询详细信息,以及使用异常处理来确保数据安全。最后,将查询到的数据填充到证书图片相应位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们要在视图获取到证书信息表选中行,并只能选中一条证书信息表数据,然后获取到证书ID,最后打开一个新的页面。
在这里插入图片描述

视图的样式完成后,我们则在控制器写我们需要完成的功能,首先使用try…catch… 获取异常,然后在查询证书信息,把需要的数据全部查询出来,查询的数据如下图:
在这里插入图片描述

查询出来后我们需要生成一张证书图片,把我们刚刚查询出来的数据全部填写到图片中该填写的位置。

  获取空白证书的物理地址
 string filePath =Server.MapPath("~/Content/images/Credential2.png");
 
 将图片转化为位图(栅格图)
 Bitmap bitmap = new Bitmap(filePath);
 
 封装一个绘画图面
 Graphics g = Graphics.FromImage(bitmap);

 定义单色的画笔
 SolidBrush solidBrush = new SolidBrush(Color.Black);

 DrawString:在指定的位置用指定的画笔(Brush)和字体(Font)对象绘制指定的文本字符串

 DrawString里面的内容数据分别为(要绘制的文本内容,所使用的字体,绘制文本的画刷,开始绘制的坐标点) 
 考生姓名
 g.DrawString(dbCertificate.StudentName,new Font("宋体", 14), solidBrush,110, 146);

 考试时间
 g.DrawString(dbCertificate.StTime.Value.Year.ToString(),new Font("宋体", 14), solid Brush,105, 175);      时间单位:年

 g.DrawString(dbCertificate.StTime.Value.Month.ToString(),new Font("宋体", 14),  solidBrush,173, 175);      时间单位:月

 g.DrawString(dbCertificate.StTime.Value.Day.ToString(),new Font("宋体", 14), solidBrush,220, 175);      时间单位:日

 绘制成绩
 g.DrawString(dbCertificate.Achievement.ToString(),new Font("宋体", 14), solidBrush,184, 200);

 绘制证书编号
 g.DrawString(dbCertificate.CertificateNumber.Trim(),new Font("宋体", 14), solidBrush,150, 268);

 绘制证书时间
 string strDate =dbCertificate.IssuanceTime.Value.ToString("yyyy年MM月dd日");
g.DrawString(strDate,new Font("宋体", 14), solidBrush,340, 332);

 实例化 MemoryStream
 MemoryStream ms = new MemoryStream();

 将图像以jpeg的格式保存到流中
 bitmap.Save(ms,ImageFormat.Jpeg);

 以byte类型输出
 byte[] newByte =ms.ToArray();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值