262  
查询码:00001003
c#生成二维码名片
作者: 陈一奇 于 2019年12月31日 发布在分类 / 人防组 / 人防后端 下,并于 2019年12月31日 编辑
二维码

<a title="生成二维码" href="javascript:;" onclick="CrCard('@item.pk_employee')" style="text-decoration:none"><i class="Hui-iconfont">&#xe63b;</i></a> 

 function msg(src) {
        //配置一个透明的询问框
        layer.msg('<img src="'+src+'" >', {
            time: 200000, //20s后自动关闭
            btn: ['关闭']
        });
    }
    //页面层
    function open(src){
    layer.open({
        type: 1,
       // offset: '100px',
        title: "员工名片二维码",
        skin: 'demo-class',
        area: ['300px', '300px'], //宽高
        content: '<div style="text-align:center"><img src="' + src + '" ></div>',
        btn: '关闭'
        });
    }
    function CrCard(id) {
        $.post("/StaffManagement/EmployeeInfo/creQRcode?id=" + id, {},function (d) {
            //msg(d);
            open(d);
        },'text')
    }
using System.Drawing;
using System.Drawing.Imaging;
引用ThoughtWorks.QRCode.dll插件

public ActionResult creQRcode(string id)


        {
            var query = db.t_employeeInfo.Where(e => e.pk_employee == id).FirstOrDefault();
            string name = query.name == "" ? "暂无" : query.name;
            string tel =query.cellPhone== null ? "400 XXX 421" : query.cellPhone;
            string TITLE = query.cellPhone == null ? "400 XXXX 421" : query.cellPhone;
            string ORG =query.fk_unit== null ? "暂无" : query.fk_unit;
            string ADR = "地址" ;
            string URL = "http://www.XX.cn/";//个人主页
            string EMAIL = query.email == null ? "邮箱" : query.email;
         

            StringBuilder card = new StringBuilder();
            card.Append("BEGIN:VCARD");
            card.Append("\r\nFN:" + name);//姓名
            card.Append("\r\nTEL;CELL:" + tel);//手机号
            card.Append("\r\nTITLE:" + TITLE);//
            card.Append("\r\nORG:" + ORG);
            card.Append("\r\nTEL;WORK:" + "400-6690421");
            card.Append("\r\nADR;WORK:" + ADR);
            card.Append("\r\nURL:" + URL);
            card.Append("\r\nEMAIL;WORK:" + EMAIL);
            card.Append("\r\nEND:VCARD\r\n");

            Bitmap bmp = GetCard(card.ToString(), string.Empty, 200, 200, "微软雅黑");

            string path = "~/Upload/MyCard/";
            string path2 = Request.MapPath(path);
            if (!Directory.Exists(path2))
            {
                Directory.CreateDirectory(path2);
            }
            string guid = Guid.NewGuid().ToString();
            string newPath = path2 + guid + ".jpg";
            bmp.Save(newPath, ImageFormat.Jpeg);
            string src = "/Upload/MyCard/" + guid + ".jpg";
            return Content(src);

        }


        /// <summary>
        /// 绘制二维码
        /// </summary>
        /// <param name="strSource"></param>
        /// <param name="text"></param>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="fontName"></param>
        /// <returns></returns>
        public static Bitmap GetCard(string strSource,string text,int width,int height,string fontName)
        {
            //创建Bitmap对象
            Bitmap bmp = new Bitmap(width,height);
            //从image创建Graphics对象
            Graphics objgraphics = Graphics.FromImage(bmp);
            //填上背景色
            objgraphics.FillRectangle(Brushes.White, 0, 0, bmp.Width, bmp.Height);

            ThoughtWorks.QRCode.Codec.QRCodeEncoder qRCodeEncoder = new ThoughtWorks.QRCode.Codec.QRCodeEncoder();
            //设置编码方法
            qRCodeEncoder.QRCodeEncodeMode= ThoughtWorks.QRCode.Codec.QRCodeEncoder.ENCODE_MODE.BYTE;
            //设置大小
            qRCodeEncoder.QRCodeScale = 3;
            // 适用于信息量较少的情形,图像越小保存的信息量越少
            // qrCodeEncoder.QRCodeScale = 4;
            // 设置版本
            qRCodeEncoder.QRCodeVersion = 0;
            // 设置错误校验的级别,正因为二维码有纠错能力,才能够加入logo
            qRCodeEncoder.QRCodeErrorCorrect = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ERROR_CORRECTION.M;
            Image image = qRCodeEncoder.Encode(strSource, Encoding.GetEncoding("utf-8"));
            // 写入二维码
            int x = (int)(width - image.Width) / 2;
            int y = (int)(height - image.Height) / 2;
            objgraphics.DrawImage(image, new Point(x, y));
            // 添加Logo图标
            image = YHFYWebSite.Properties.Resources.logo;
            x = (int)(width - image.Width) / 2;
            y = (int)(height - image.Height) / 2;
            objgraphics.DrawImage(image, new Point(x, y));
            return bmp;

        }


 推荐知识

 历史版本

修改日期 修改人 备注
2019-12-31 10:47:57[当前版本] 陈一奇 创建版本

知识分享平台 -V 4.8.7 -wcp