信息生成图片

        public ResultResponse<string> CertificateImg(int type)
        {
            ResultResponse<string> ret = new ResultResponse<string>();
            if (type <= 0)
            {
                ret.ErrorMsg = "参数无效";
                ret.Flag = false;
                return ret; 
            }

            var doc = GetCertInfo(type);
            var option = new ImageSaveOptions(SaveFormat.Jpeg);
            option.PrettyFormat = true;

            using (var ms = new MemoryStream())
            {
                doc.Save(ms, option);
                var resp = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ByteArrayContent(ms.GetBuffer())
                };
                resp.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
                var Result = "data:image/jpeg;base64," + Convert.ToBase64String(ms.GetBuffer());
                ret.Result = Result;
                ret.ErrorMsg = "";
                ret.Flag = true;
                return ret;
            }
        }
 
        [AllowUser]
        public Aspose.Words.Document GetCertInfo(int type)
        {
            List<Vm_Certificate> list = new List<Vm_Certificate>();
            var typeName = "";
            var user = UserBll.GetUserByLoginId(8011); ;//用户信息
          var certificate = StuCertificateBll.GetQueryable().Where(p => p.UserId == 8011 && p.CertificateType == type).FirstOrDefault();
            if (certificate != null)
            {
                    Vm_Certificate c = new Vm_Certificate();
                    c.Id = certificate.Id;
                    c.AvatarUrl = user.AvatarUrl == null ? null : user.AvatarUrl;
                    c.AddTime = certificate.AddTime.ToString("yyyy-MM-dd HH:mm:ss");
                    c.Organization = "北京博奥网络教育科技股份有限公司";
                    c.Name = user.Name;
                    c.CertNo = user.CertNo;
                    c.Sex = StringHelper.GetSexTypeByPersonalId(user.CertNo);
                    c.CertificateNumber = certificate.CertificateNumber;
                    c.CertificateType = certificate.CertificateType;
                    c.TypeName = "绿化工" + typeName;
                    c.CertificateName = "园林绿化工" + typeName + "培训合格证明";
                    list.Add(c);
            } 
            Aspose.Words.Document doc;
            
            using (var stream = System.IO.File.OpenRead(HttpContext.Current.Server.MapPath("/File/Template/证书模板.docx")))
            {
                doc = new Aspose.Words.Document(stream);
            }
            
            var dicReplaceValues = new Dictionary<string, string>();
            dicReplaceValues.Add("Name", list[0].Name);
            dicReplaceValues.Add("CertNo", list[0].CertNo);
            dicReplaceValues.Add("CertificateNumber", list[0].CertificateNumber);
            dicReplaceValues.Add("CertificateName", list[0].CertificateName);
            dicReplaceValues.Add("Sex", list[0].Sex);
            dicReplaceValues.Add("AddTime", list[0].AddTime);
            dicReplaceValues.Add("AvatarUrl", ConfigurationManager.AppSettings["WebImgUrl"] + list[0].AvatarUrl);
            dicReplaceValues.Add("TypeName", list[0].TypeName);
            dicReplaceValues.Add("Organization", list[0].Organization);
            dicReplaceValues.Add("SignetImg", ConfigurationManager.AppSettings["WebImgUrl"] + "/Images/zhengshu/zhang.png");
            DocumentBuilder builder = new DocumentBuilder(doc);
            foreach (var key in dicReplaceValues.Keys)
            {
                if (key == "AvatarUrl")
                {
                    //插入图片
                    builder.InsertImage(dicReplaceValues[key], RelativeHorizontalPosition.LeftMargin, 80, RelativeVerticalPosition.TopMargin, 250, 73, 100, WrapType.None);//147表
                }
                if (key == "SignetImg")
                {
                    //插入图片
                    builder.InsertImage(dicReplaceValues[key], RelativeHorizontalPosition.LeftMargin, 400, RelativeVerticalPosition.TopMargin, 355, 70, 70, WrapType.None);//147表
                }
                else
                {
                    var repStr = string.Format("${0}$", key);
                    doc.Range.Replace(repStr, dicReplaceValues[key]);
                }
            }
            return doc;
        }

 

posted @ 2020-08-25 13:51  春夏秋冬的千山万水  阅读(178)  评论(0)    收藏  举报