protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                string LoginID = Session["LoginID"].ToString();
                string path    = Server.MapPath("~/QRCodeImages/" + LoginID + ".jpg");

                if (!File.Exists(path))
                {
                    string schoolNo = ConfigurationManager.AppSettings["SchoolNo"].ToString();
                    string AESCode  = string.Format("schoolNo={0}&clientNo={1}&cardNo={2}", schoolNo, "001", LoginID);
                    Bitmap bitmap   = QRCode.GetDimensionalCode(AESAlgorithm.AESEncrypt(AESCode, "SeatManage_WeiCharCode"), 6, 8);

                    // string filename = Guid.NewGuid().ToString();
                    path = Server.MapPath("~/QRCodeImages/" + LoginID + ".jpg");
                    bitmap.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
                    bitmap.Dispose();
                }

                Image1.ImageUrl = "/QRCodeImages/" + LoginID + ".jpg";
            }
            catch (Exception ex)
            {
                throw new Exception("登录会话过期,请重新登录");
            }
        }
        private void ObjCardReader_CardNoGeted(object sender, SeatManage.ISystemTerminal.IPOS.CardEventArgs e)
        {
            StopRead();
            if (!string.IsNullOrEmpty(e.CardNo))
            {
                Dispatcher.Invoke(new Action(() =>
                {
                    viewModel.CardNo         = e.CardNo;
                    string AESCode           = string.Format("schoolNo={0}&clientNo={1}&cardNo={2}", viewModel.ClientObject.ClientSetting.ClientNo.Substring(0, viewModel.ClientObject.ClientSetting.ClientNo.Length - 2), viewModel.ClientObject.ClientSetting.ClientNo, e.CardNo);
                    Bitmap bitmap            = QRCode.GetDimensionalCode(AESAlgorithm.AESEncrypt(AESCode, "SeatManage_WeiCharCode"), 6, 8);
                    IntPtr hBitmap           = bitmap.GetHbitmap();
                    BitmapSource bitmapImage = new BitmapImage();

                    try
                    {
                        bitmapImage = Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                    }
                    finally
                    {
                        DeleteObject(hBitmap);
                    }
                    imgCode.Fill = new ImageBrush(bitmapImage);
                }));
            }
            else
            {
                SeatManage.SeatManageComm.WriteLog.Write("读卡出现错误:" + e.ErrorInfo);
            }
            //System.Threading.Thread.Sleep(2000);
            StartRead();
        }
        private void btnRead_Click(object sender, RoutedEventArgs e)
        {
            if (txt_cardno.Text != "")
            {
                string       AESCode     = string.Format("schoolNo={0}&clientNo={1}&cardNo={2}", viewModel.ClientObject.ClientSetting.ClientNo.Substring(0, viewModel.ClientObject.ClientSetting.ClientNo.Length - 2), viewModel.ClientObject.ClientSetting.ClientNo, txt_cardno.Text);
                Bitmap       bitmap      = QRCode.GetDimensionalCode(AESAlgorithm.AESEncrypt(AESCode, "SeatManage_WeiCharCode"), 6, 8);
                IntPtr       hBitmap     = bitmap.GetHbitmap();
                BitmapSource bitmapImage = new BitmapImage();

                try
                {
                    bitmapImage = Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                }
                finally
                {
                    DeleteObject(hBitmap);
                }
                imgCode.Fill = new ImageBrush(bitmapImage);
            }
        }
Example #4
0
        public static void CreatSingleSeatQRCode(string readingRoomNo, string roomName, string seatNo)
        {
            try
            {
                string rootPath = System.Web.HttpContext.Current.Server.MapPath("~/SeatQRCode/");
                if (Directory.Exists(rootPath))
                {
                    string subPath = System.Web.HttpContext.Current.Server.MapPath("~/SeatQRCode/" + readingRoomNo + "/");
                    if (!Directory.Exists(subPath))
                    {
                        Directory.CreateDirectory(subPath);
                    }
                    string schoolNo = ConfigurationManager.AppSettings["SchoolNo"].ToString();
                    string AESCode  = string.Format("schoolNo={0}&readingRoomNo={1}&seatNo={2}", schoolNo, readingRoomNo, seatNo);
                    Bitmap bitmap   = QRCode.GetDimensionalCode(AESAlgorithm.AESEncrypt(AESCode, "SeatManage_WeiCharCode"), 6, 8);

                    //string tempPath =  System.Web.HttpContext.Current.Server.MapPath("~/SeatQRCode/temp/GetDateString()/" + readingRoomNo + "/");
                    //Directory.CreateDirectory(tempPath);
                    //bitmap.Save(tempPath + seatNo + ".jpg");

                    string imagePath = subPath + seatNo + ".jpg";



                    Image img = bitmap;
                    Image bg  = CreateImage("阅览室:" + roomName + "   座位编号:" + seatNo, true, 16);
                    CombinImage(bg, img, imagePath, 0, -50);
                    bitmap.Dispose();
                    bg.Dispose();
                    img.Dispose();
                }
                else
                {
                    WriteLog.Write("找不到" + rootPath + "文件夹,或者权限不足,请联系管理员");
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write(ex.ToString());
            }
        }
        /// <summary>
        /// 二维码显示
        /// </summary>
        void viewModel_CodeChange()
        {
            Dispatcher.Invoke(new Action(() =>
            {
                string url               = viewModel.ClientObject.CodeUrl + "?param=";
                string AESCode           = string.Format("schoolNo={0}&clientNo={1}&codeTime={2}", viewModel.ClientObject.ClientSetting.ClientNo.Substring(0, viewModel.ClientObject.ClientSetting.ClientNo.Length - 2), viewModel.ClientObject.ClientSetting.ClientNo, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                Bitmap bitmap            = QRCode.GetDimensionalCode(url + AESAlgorithm.AESEncrypt(AESCode, "SeatManage_WeiCharCode"), 6, 8);
                IntPtr hBitmap           = bitmap.GetHbitmap();
                BitmapSource bitmapImage = new BitmapImage();

                try
                {
                    bitmapImage = Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                }
                finally
                {
                    DeleteObject(hBitmap);
                }
                imgCode.Fill = new ImageBrush(bitmapImage);
            }));
        }
Example #6
0
 /// <summary>
 /// 导出
 /// </summary>
 /// <returns></returns>
 public bool Save()
 {
     if (string.IsNullOrEmpty(_SavePath.Trim()))
     {
         ErrorMessage = "保存地址不能为空!";
         return(false);
     }
     if (string.IsNullOrEmpty(_Url.Trim()))
     {
         ErrorMessage = "保存地址不能为空!";
         return(false);
     }
     try
     {
         string codeURL  = _Url + "?param=";
         string AESCode  = "seatNum={0}&readingRoomNum={1}";
         string savePath = _SavePath + _RoomInfo.No + "_" + _RoomInfo.Name + "\\";
         if (!Directory.Exists(savePath))
         {
             Directory.CreateDirectory(savePath);
         }
         foreach (KeyValuePair <string, SeatManage.ClassModel.Seat> seat in _RoomInfo.SeatList.Seats)
         {
             Bitmap   dCode = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.UrlEncode(string.Format(AESCode, seat.Value.SeatNo, _RoomInfo.No)));
             Graphics dNum  = Graphics.FromImage(dCode);
             dNum.DrawRectangle(new Pen(Color.White, 60), 141, 141, 60, 60);
             StringFormat sf = new StringFormat();
             sf.Alignment = StringAlignment.Center;
             dNum.DrawString(seat.Value.ShortSeatNo, new Font("黑体", 46, FontStyle.Bold), Brushes.Black, 172, 141, sf);
             dNum.Save();
             dCode.Save(savePath + seat.Key + ".jpg", ImageFormat.Jpeg);
         }
         return(true);
     }
     catch (Exception ex)
     {
         ErrorMessage = "导出失败," + ex.Message;
         return(false);
     }
 }
        /// <summary>
        /// 导出
        /// </summary>
        /// <returns></returns>
        public bool Save()
        {
            if (string.IsNullOrEmpty(_SavePath.Trim()))
            {
                ErrorMessage = "保存地址不能为空!";
                return(false);
            }
            if (string.IsNullOrEmpty(_Url.Trim()))
            {
                ErrorMessage = "保存地址不能为空!";
                return(false);
            }
            try
            {
                string schoolno = SeatManage.Bll.Registry.GetSchoolNum();
                string codeURL  = _Url + "?param=";
                string AESCode  = "schoolNo=" + schoolno + "&roomNo={1}&seatNo={0}";
                string savePath = _SavePath + _RoomInfo.No + "_" + _RoomInfo.Name + "\\";
                if (!Directory.Exists(savePath))
                {
                    Directory.CreateDirectory(savePath);
                }
                if (!_IsUseTemplate)
                {
                    //默认
                    foreach (KeyValuePair <string, SeatManage.ClassModel.Seat> seat in _RoomInfo.SeatList.Seats)
                    {
                        Bitmap dCode = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seat.Value.SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"), 6, 12, "M");
                        //Bitmap dCode = QRCode.GetDimensionalCode(codeURL + string.Format(AESCode, seat.Value.SeatNo, _RoomInfo.No), 6, 12, "M");
                        Graphics dNum = Graphics.FromImage(dCode);
                        dNum.DrawRectangle(new Pen(Color.White, 60), 165, 165, 60, 60);
                        StringFormat sf = new StringFormat();
                        sf.Alignment = StringAlignment.Center;
                        dNum.DrawString(seat.Value.ShortSeatNo, new Font("黑体", 46, FontStyle.Bold), Brushes.Black, 196, 165, sf);
                        dNum.Save();
                        dCode.Save(savePath + seat.Key + ".jpg", ImageFormat.Jpeg);
                    }
                    return(true);
                }
                if (string.IsNullOrEmpty(_TemplatePath))
                {
                    ErrorMessage = "请选择模板!";
                    return(false);
                }
                if (!Directory.Exists(_TemplatePath))
                {
                    ErrorMessage = "模板路径不存在!";
                    return(false);
                }
                string xmlFilePath = _TemplatePath + "\\Template.xml";
                if (!File.Exists(xmlFilePath))
                {
                    ErrorMessage = "模板加载失败!";
                    return(false);
                }
                //加载模板
                XmlDocument docXml = new XmlDocument();
                docXml.Load(xmlFilePath);
                SeatManage.ClassModel.DimensionalTemplate template = SeatManage.ClassModel.DimensionalTemplate.Parse(docXml.OuterXml);
                int seatCodeCount = template.SeatCodeCount;
                List <SeatManage.ClassModel.DimensionalElement> seatCodeList = template.ElementList.FindAll(u => u.Type == SeatManage.ClassModel.DimensionalElementTye.SeatCode);
                List <SeatManage.ClassModel.DimensionalElement> seatNoList   = template.ElementList.FindAll(u => u.Type == SeatManage.ClassModel.DimensionalElementTye.SeatNo);
                List <SeatManage.ClassModel.DimensionalElement> roomNameList = template.ElementList.FindAll(u => u.Type == SeatManage.ClassModel.DimensionalElementTye.ReadingRoomName);
                List <SeatManage.ClassModel.DimensionalElement> bgList       = template.ElementList.FindAll(u => u.Type == SeatManage.ClassModel.DimensionalElementTye.Background);
                List <SeatManage.ClassModel.DimensionalElement> imageList    = template.ElementList.FindAll(u => u.Type == SeatManage.ClassModel.DimensionalElementTye.Image);
                List <SeatManage.ClassModel.DimensionalElement> textList     = template.ElementList.FindAll(u => u.Type == SeatManage.ClassModel.DimensionalElementTye.Text);

                //整理排序号
                string[] no = _NumOrder.Split(',');
                if (no.Length % seatCodeCount != 0)
                {
                    ErrorMessage = "排序号必须为模板联数的倍数!";
                    return(false);
                }
                List <int> seatOrderNo = new List <int>();
                for (int i = 0; i < no.Length; i++)
                {
                    seatOrderNo.Add(int.Parse(no[i]) - 1);
                }

                List <SeatManage.ClassModel.Seat> seatList = new List <SeatManage.ClassModel.Seat>();
                foreach (KeyValuePair <string, SeatManage.ClassModel.Seat> seat in _RoomInfo.SeatList.Seats)
                {
                    seatList.Add(seat.Value);
                }
                //处理部分导出
                if (_PathSave)
                {
                    string[] num = _OutputNum.Split('-');
                    int      s   = int.Parse(num[0]) - 1;
                    int      e   = int.Parse(num[1]) - 1;
                    if (s < 1)
                    {
                        ErrorMessage = "起始编号必须大于零!";
                        return(false);
                    }
                    if (e > seatList.Count)
                    {
                        ErrorMessage = "结束编号不能大于座位总数!";
                        return(false);
                    }
                    seatList.RemoveRange(0, s);
                    seatList.RemoveRange(e - s + 1, seatList.Count - (e - s + 1));
                }
                Bitmap       image      = null;
                List <Image> seatQRList = new List <Image>();
                for (int i = 0; i < seatList.Count; i++)
                {
                    int seatOrder = (i / seatOrderNo.Count) * seatOrderNo.Count + seatOrderNo[i % seatOrderNo.Count];
                    int seatNo    = i % seatCodeCount;
                    //创建模板
                    if (seatNo == 0)
                    {
                        image = new Bitmap((int)template.Width, (int)template.Height);
                        Graphics bg = Graphics.FromImage(image);
                        //加载背景图片
                        for (int j = 0; j < bgList.Count; j++)
                        {
                            Bitmap   imgB = new Bitmap((int)bgList[j].Width, (int)bgList[j].Height);
                            Graphics ibg  = Graphics.FromImage(imgB);
                            Image    bgi  = Bitmap.FromFile(_TemplatePath + "\\" + bgList[j].ImageFile);
                            if (bgi == null)
                            {
                                ErrorMessage = "背景图片加载失败!";
                                return(false);
                            }
                            ibg.DrawImage(bgi, 0, 0, (int)bgList[j].Width, (int)bgList[j].Height);
                            ibg.Dispose();
                            switch ((int)bgList[j].Angle)
                            {
                            case 90:
                                imgB.RotateFlip(RotateFlipType.Rotate90FlipNone);
                                break;

                            case 180:
                                imgB.RotateFlip(RotateFlipType.Rotate180FlipNone);
                                break;

                            case 270:
                                imgB.RotateFlip(RotateFlipType.Rotate270FlipNone);
                                break;
                            }
                            bg.DrawImage(imgB, (int)bgList[j].PosintionX, (int)bgList[j].PosintionY, (int)bgList[j].Width, (int)bgList[j].Height);
                        }
                        bg.Dispose();
                    }

                    //座位编号二维码
                    Image seatQR = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[seatOrder].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"), 6, 12, "H");
                    switch ((int)seatCodeList[seatNo].Angle)
                    {
                    case 90:
                        seatQR.RotateFlip(RotateFlipType.Rotate90FlipNone);
                        break;

                    case 180:
                        seatQR.RotateFlip(RotateFlipType.Rotate180FlipNone);
                        break;

                    case 270:
                        seatQR.RotateFlip(RotateFlipType.Rotate270FlipNone);
                        break;
                    }
                    Graphics seatg = Graphics.FromImage(image);
                    seatg.DrawImage(seatQR, (int)seatCodeList[seatNo].PosintionX, (int)seatCodeList[seatNo].PosintionY, (int)seatCodeList[seatNo].Width, (int)seatCodeList[seatNo].Height);
                    //座位编号
                    seatg.DrawImage(DrawText(seatNoList[seatNo], seatList[seatOrder].ShortSeatNo), (int)seatNoList[seatNo].PosintionX, (int)seatNoList[seatNo].PosintionY, (int)seatNoList[seatNo].Width, (int)seatNoList[seatNo].Height);
                    seatg.Dispose();
                    if (seatNo == seatCodeCount - 1 || i + 1 == seatList.Count)
                    {
                        Graphics gi = Graphics.FromImage(image);
                        for (int j = 0; j < roomNameList.Count; j++)
                        {
                            gi.DrawImage(DrawText(roomNameList[j], _RoomInfo.Name), (int)roomNameList[j].PosintionX, (int)roomNameList[j].PosintionY, (int)roomNameList[j].Width, (int)roomNameList[j].Height);
                        }
                        for (int j = 0; j < textList.Count; j++)
                        {
                            gi.DrawImage(DrawText(textList[j], textList[j].Text), (int)textList[j].PosintionX, (int)textList[j].PosintionY, (int)textList[j].Width, (int)textList[j].Height);
                        }

                        for (int j = 0; j < imageList.Count; j++)
                        {
                            Image img = Bitmap.FromFile(_TemplatePath + "\\" + imageList[j].ImageFile);
                            if (img == null)
                            {
                                ErrorMessage = "图片加载失败!";
                                return(false);
                            }
                            switch ((int)imageList[j].Angle)
                            {
                            case 90:
                                img.RotateFlip(RotateFlipType.Rotate90FlipNone);
                                break;

                            case 180:
                                img.RotateFlip(RotateFlipType.Rotate180FlipNone);
                                break;

                            case 270:
                                img.RotateFlip(RotateFlipType.Rotate270FlipNone);
                                break;
                            }
                            gi.DrawImage(img, (int)imageList[j].PosintionX, (int)imageList[j].PosintionY, (int)imageList[j].Width, (int)imageList[j].Height);
                        }
                        gi.Dispose();
                        string imageName = "";
                        for (int k = 0; k < seatCodeCount; k++)
                        {
                            int ii    = i - k;
                            int order = (ii / seatOrderNo.Count) * seatOrderNo.Count + seatOrderNo[ii % seatOrderNo.Count];
                            imageName = "_" + seatList[order].ShortSeatNo + imageName;
                        }
                        image.Save(savePath + _RoomInfo.Name + imageName + ".jpg", ImageFormat.Jpeg);
                        image.Dispose();
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                ErrorMessage = "导出失败," + ex.Message;
                return(false);
            }
        }
        /// <summary>
        /// 导出
        /// </summary>
        /// <returns></returns>
        public bool Save()
        {
            if (string.IsNullOrEmpty(_SavePath.Trim()))
            {
                ErrorMessage = "保存地址不能为空!";
                return(false);
            }
            if (string.IsNullOrEmpty(_Url.Trim()))
            {
                ErrorMessage = "保存地址不能为空!";
                return(false);
            }
            try
            {
                string schoolno = SeatManage.Bll.Registry.GetSchoolNum();
                string codeURL  = _Url + "?param=";
                //seatNum={0}&readingRoomNum={1}
                string AESCode  = "schoolNo=" + schoolno + "&roomNo={1}&seatNo={0}";
                string savePath = _SavePath + _RoomInfo.No + "_" + _RoomInfo.Name + "\\";
                if (!Directory.Exists(savePath))
                {
                    Directory.CreateDirectory(savePath);
                }
                if (!_IsUseTemplate)
                {
                    //默认
                    foreach (KeyValuePair <string, SeatManage.ClassModel.Seat> seat in _RoomInfo.SeatList.Seats)
                    {
                        Bitmap   dCode = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seat.Value.SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                        Graphics dNum  = Graphics.FromImage(dCode);
                        dNum.DrawRectangle(new Pen(Color.White, 60), 141, 141, 60, 60);
                        StringFormat sf = new StringFormat();
                        sf.Alignment = StringAlignment.Center;
                        dNum.DrawString(seat.Value.ShortSeatNo, new Font("黑体", 46, FontStyle.Bold), Brushes.Black, 172, 141, sf);
                        dNum.Save();
                        dCode.Save(savePath + seat.Key + ".jpg", ImageFormat.Jpeg);
                    }
                }
                else
                {
                    string[] no = _NumOrder.Split(',');
                    int      a  = int.Parse(no[0]) - 1;
                    int      b  = int.Parse(no[1]) - 1;
                    int      c  = int.Parse(no[2]) - 1;
                    int      d  = int.Parse(no[3]) - 1;
                    List <SeatManage.ClassModel.Seat> seatList = new List <SeatManage.ClassModel.Seat>();
                    foreach (KeyValuePair <string, SeatManage.ClassModel.Seat> seat in _RoomInfo.SeatList.Seats)
                    {
                        seatList.Add(seat.Value);
                    }
                    if (_PathSave)
                    {
                        string[] num = _OutputNum.Split('-');
                        int      s   = int.Parse(num[0]) - 1;
                        int      e   = int.Parse(num[1]) - 1;
                        seatList.RemoveRange(0, s);
                        seatList.RemoveRange(e - s + 1, seatList.Count - (e - s + 1));
                    }


                    //江西师范

                    //seatList.OrderBy(v => v.SeatNo);
                    //StringFormat sf = new StringFormat();
                    //sf.Alignment = StringAlignment.Far;

                    //StringFormat sf1 = new StringFormat();
                    //sf1.Alignment = StringAlignment.Center;
                    //for (int i = 0; i < seatList.Count; i = i + 4)
                    //{
                    //    {
                    //        Bitmap image = new Bitmap(1772, 945);
                    //        Graphics bg = Graphics.FromImage(image);
                    //        Image bgi = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码bg.jpg");
                    //        bg.DrawImage(bgi, 0, 0, 1772, 945);

                    //        Graphics code1 = Graphics.FromImage(image);
                    //        Image c1 = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + a].SeatNo, _RoomInfo.No)));
                    //        code1.DrawImage(c1, 177, 223, 530, 530);
                    //        Graphics Num1 = Graphics.FromImage(image);
                    //        Num1.DrawString(seatList[i + a].ShortSeatNo, new Font("方正兰亭粗黑_GBK", 72, FontStyle.Bold), Brushes.White, 439, 825, sf1);

                    //        Graphics code2 = Graphics.FromImage(image);
                    //        Image c2 = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + b].SeatNo, _RoomInfo.No)));
                    //        code2.DrawImage(c2, 1062, 223, 530, 530);
                    //        Graphics Num2 = Graphics.FromImage(image);
                    //        Num1.DrawString(seatList[i + b].ShortSeatNo, new Font("方正兰亭粗黑_GBK", 72, FontStyle.Bold), Brushes.White, 1329, 825, sf1);

                    //        Graphics logo1 = Graphics.FromImage(image);
                    //        Image logo = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码logo.jpg");
                    //        logo1.DrawImage(logo, 344, 395, 190, 190);
                    //        Graphics logo2 = Graphics.FromImage(image);
                    //        logo2.DrawImage(logo, 1234, 395, 190, 190);

                    //        Graphics NumRoom = Graphics.FromImage(image);
                    //        NumRoom.DrawString(_RoomInfo.Name, new Font("方正兰亭粗黑_GBK", 46, FontStyle.Bold), Brushes.White, 1650, 64, sf);

                    //        image.Save(savePath + _RoomInfo.Name + "_" + seatList[i + a].ShortSeatNo + "_" + seatList[i + b].ShortSeatNo + ".jpg", ImageFormat.Jpeg);
                    //    }
                    //    {
                    //        Bitmap image = new Bitmap(1772, 945);

                    //        Graphics bg = Graphics.FromImage(image);
                    //        Image bgi = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码bg.jpg");
                    //        bg.DrawImage(bgi, 0, 0, 1772, 945);

                    //        Graphics code1 = Graphics.FromImage(image);
                    //        Image c1 = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + c].SeatNo, _RoomInfo.No)));
                    //        code1.DrawImage(c1, 177, 223, 530, 530);
                    //        Graphics Num1 = Graphics.FromImage(image);
                    //        Num1.DrawString(seatList[i + c].ShortSeatNo, new Font("方正兰亭粗黑_GBK", 72, FontStyle.Bold), Brushes.White, 439, 825, sf1);

                    //        Graphics code2 = Graphics.FromImage(image);
                    //        Image c2 = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + d].SeatNo, _RoomInfo.No)));
                    //        code2.DrawImage(c2, 1062, 223, 530, 530);
                    //        Graphics Num2 = Graphics.FromImage(image);
                    //        Num1.DrawString(seatList[i + d].ShortSeatNo, new Font("方正兰亭粗黑_GBK", 72, FontStyle.Bold), Brushes.White, 1329, 825, sf1);

                    //        Graphics logo1 = Graphics.FromImage(image);
                    //        Image logo = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码logo.jpg");
                    //        logo1.DrawImage(logo, 344, 395, 190, 190);
                    //        Graphics logo2 = Graphics.FromImage(image);
                    //        logo2.DrawImage(logo, 1234, 395, 190, 190);

                    //        Graphics NumRoom = Graphics.FromImage(image);
                    //        NumRoom.DrawString(_RoomInfo.Name, new Font("方正兰亭粗黑_GBK", 46, FontStyle.Bold), Brushes.White, 1650, 64, sf);

                    //        image.Save(savePath + _RoomInfo.Name + "_" + seatList[i + c].ShortSeatNo + "_" + seatList[i + d].ShortSeatNo + ".jpg", ImageFormat.Jpeg);
                    //    }
                    //}

                    //集美大学

                    seatList.OrderBy(v => v.SeatNo);
                    StringFormat sf = new StringFormat();
                    sf.Alignment = StringAlignment.Near;

                    StringFormat sf1 = new StringFormat();
                    sf1.Alignment = StringAlignment.Center;

                    switch (codeconut)
                    {
                    case 1:
                    {
                        for (int i = 0; i < seatList.Count; i++)
                        {
                            Bitmap image1 = new Bitmap(744, 744);
                            {
                                Graphics bg  = Graphics.FromImage(image1);
                                Image    bgi = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码bg_JMDX_S.jpg");
                                bg.DrawImage(bgi, 0, 0, 744, 744);

                                Graphics code1 = Graphics.FromImage(image1);
                                Image    c1    = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                                code1.DrawImage(c1, 185, 187, 375, 375);
                                Graphics Num1 = Graphics.FromImage(image1);
                                Num1.DrawString(seatList[i].ShortSeatNo, new Font("方正综艺简体", 100, FontStyle.Regular), Brushes.White, 388, 590, sf1);

                                Graphics logo1 = Graphics.FromImage(image1);
                                Image    logo  = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码logo_JMDX.png");
                                logo1.DrawImage(logo, 325, 325, 98, 98);

                                Graphics NumRoom = Graphics.FromImage(image1);
                                NumRoom.DrawString(_RoomInfo.Name, new Font("汉仪超粗宋简", 36, FontStyle.Regular), Brushes.White, 40, 40, sf);

                                image1.Save(savePath + _RoomInfo.Name + "_" + seatList[i].ShortSeatNo + ".jpg", ImageFormat.Jpeg);
                            }
                        }
                    }; break;

                    case 2:
                    {
                        for (int i = 0; i < seatList.Count; i = i + 4)
                        {
                            //Bitmap image = new Bitmap(1488, 1488);
                            Bitmap image1 = new Bitmap(1488, 744);
                            Bitmap image2 = new Bitmap(1488, 744);
                            {
                                Graphics bg  = Graphics.FromImage(image1);
                                Image    bgi = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码bg_JMDX.jpg");
                                bg.DrawImage(bgi, 0, 0, 1488, 744);

                                Graphics code1 = Graphics.FromImage(image1);
                                Image    c1    = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + a].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                                code1.DrawImage(c1, 200, 187, 375, 375);
                                Graphics Num1 = Graphics.FromImage(image1);
                                Num1.DrawString(seatList[i + a].ShortSeatNo, new Font("方正综艺简体", 100, FontStyle.Regular), Brushes.White, 388, 590, sf1);

                                Graphics code2 = Graphics.FromImage(image1);
                                Image    c2    = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + b].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                                code2.DrawImage(c2, 915, 187, 375, 375);
                                Graphics Num2 = Graphics.FromImage(image1);
                                Num1.DrawString(seatList[i + b].ShortSeatNo, new Font("方正综艺简体", 100, FontStyle.Regular), Brushes.White, 1103, 590, sf1);

                                Graphics logo1 = Graphics.FromImage(image1);
                                Image    logo  = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码logo_JMDX.png");
                                logo1.DrawImage(logo, 340, 325, 98, 98);
                                Graphics logo2 = Graphics.FromImage(image1);
                                logo2.DrawImage(logo, 1057, 325, 98, 98);

                                Graphics NumRoom = Graphics.FromImage(image1);
                                NumRoom.DrawString(_RoomInfo.Name, new Font("汉仪超粗宋简", 46, FontStyle.Regular), Brushes.White, 70, 36, sf);

                                image1.Save(savePath + _RoomInfo.Name + "_" + seatList[i + a].ShortSeatNo + "_" + seatList[i + b].ShortSeatNo + ".jpg", ImageFormat.Jpeg);
                            }
                            {
                                Graphics bg  = Graphics.FromImage(image2);
                                Image    bgi = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码bg_JMDX.jpg");
                                bg.DrawImage(bgi, 0, 0, 1488, 744);

                                Graphics code1 = Graphics.FromImage(image2);
                                Image    c1    = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + c].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                                code1.DrawImage(c1, 200, 187, 375, 375);
                                Graphics Num1 = Graphics.FromImage(image2);
                                Num1.DrawString(seatList[i + c].ShortSeatNo, new Font("方正综艺简体", 100, FontStyle.Regular), Brushes.White, 388, 590, sf1);

                                Graphics code2 = Graphics.FromImage(image2);
                                Image    c2    = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + d].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                                code2.DrawImage(c2, 915, 187, 375, 375);
                                Graphics Num2 = Graphics.FromImage(image2);
                                Num1.DrawString(seatList[i + d].ShortSeatNo, new Font("方正综艺简体", 100, FontStyle.Regular), Brushes.White, 1103, 590, sf1);

                                Graphics logo1 = Graphics.FromImage(image2);
                                Image    logo  = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码logo_JMDX.png");
                                logo1.DrawImage(logo, 340, 325, 98, 98);
                                Graphics logo2 = Graphics.FromImage(image2);
                                logo2.DrawImage(logo, 1057, 325, 98, 98);

                                Graphics NumRoom = Graphics.FromImage(image2);
                                NumRoom.DrawString(_RoomInfo.Name, new Font("汉仪超粗宋简", 46, FontStyle.Regular), Brushes.White, 70, 36, sf);

                                image2.Save(savePath + _RoomInfo.Name + "_" + seatList[i + c].ShortSeatNo + "_" + seatList[i + d].ShortSeatNo + ".jpg", ImageFormat.Jpeg);
                            }
                            //Graphics img1 = Graphics.FromImage(image);
                            //img1.DrawImage(image1, 0, 744, 1488, 744);

                            //image2.RotateFlip(RotateFlipType.Rotate180FlipNone);
                            //Graphics img2 = Graphics.FromImage(image);
                            //img2.DrawImage(image2, 0, 0, 1488, 744);

                            //image.Save(savePath + _RoomInfo.Name + "_" + seatList[i + a].ShortSeatNo + "_" + seatList[i + b].ShortSeatNo + "_" + seatList[i + c].ShortSeatNo + "_" + seatList[i + d].ShortSeatNo + ".jpg", ImageFormat.Jpeg);
                        }
                    }; break;

                    case 4:
                    {
                        for (int i = 0; i < seatList.Count; i = i + 4)
                        {
                            Bitmap image  = new Bitmap(1488, 1488);
                            Bitmap image1 = new Bitmap(1488, 744);
                            Bitmap image2 = new Bitmap(1488, 744);
                            {
                                Graphics bg  = Graphics.FromImage(image1);
                                Image    bgi = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码bg_JMDX.jpg");
                                bg.DrawImage(bgi, 0, 0, 1488, 744);

                                Graphics code1 = Graphics.FromImage(image1);
                                Image    c1    = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + a].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                                code1.DrawImage(c1, 200, 187, 375, 375);
                                Graphics Num1 = Graphics.FromImage(image1);
                                Num1.DrawString(seatList[i + a].ShortSeatNo, new Font("方正综艺简体", 100, FontStyle.Regular), Brushes.White, 388, 590, sf1);

                                Graphics code2 = Graphics.FromImage(image1);
                                Image    c2    = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + b].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                                code2.DrawImage(c2, 915, 187, 375, 375);
                                Graphics Num2 = Graphics.FromImage(image1);
                                Num1.DrawString(seatList[i + b].ShortSeatNo, new Font("方正综艺简体", 100, FontStyle.Regular), Brushes.White, 1103, 590, sf1);

                                Graphics logo1 = Graphics.FromImage(image1);
                                Image    logo  = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码logo_JMDX.png");
                                logo1.DrawImage(logo, 340, 325, 98, 98);
                                Graphics logo2 = Graphics.FromImage(image1);
                                logo2.DrawImage(logo, 1057, 325, 98, 98);

                                Graphics NumRoom = Graphics.FromImage(image1);
                                NumRoom.DrawString(_RoomInfo.Name, new Font("汉仪超粗宋简", 46, FontStyle.Regular), Brushes.White, 70, 36, sf);

                                //image1.Save(savePath + _RoomInfo.Name + "_" + seatList[i + a].ShortSeatNo + "_" + seatList[i + b].ShortSeatNo + ".jpg", ImageFormat.Jpeg);
                            }
                            {
                                Graphics bg  = Graphics.FromImage(image2);
                                Image    bgi = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码bg_JMDX.jpg");
                                bg.DrawImage(bgi, 0, 0, 1488, 744);

                                Graphics code1 = Graphics.FromImage(image2);
                                Image    c1    = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + c].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                                code1.DrawImage(c1, 200, 187, 375, 375);
                                Graphics Num1 = Graphics.FromImage(image2);
                                Num1.DrawString(seatList[i + c].ShortSeatNo, new Font("方正综艺简体", 100, FontStyle.Regular), Brushes.White, 388, 590, sf1);

                                Graphics code2 = Graphics.FromImage(image2);
                                Image    c2    = QRCode.GetDimensionalCode(codeURL + AESAlgorithm.AESEncrypt(string.Format(AESCode, seatList[i + d].SeatNo, _RoomInfo.No), "SeatManage_WeiCharCode"));
                                code2.DrawImage(c2, 915, 187, 375, 375);
                                Graphics Num2 = Graphics.FromImage(image2);
                                Num1.DrawString(seatList[i + d].ShortSeatNo, new Font("方正综艺简体", 100, FontStyle.Regular), Brushes.White, 1103, 590, sf1);

                                Graphics logo1 = Graphics.FromImage(image2);
                                Image    logo  = Bitmap.FromFile(AppDomain.CurrentDomain.BaseDirectory + "二维码logo_JMDX.png");
                                logo1.DrawImage(logo, 340, 325, 98, 98);
                                Graphics logo2 = Graphics.FromImage(image2);
                                logo2.DrawImage(logo, 1057, 325, 98, 98);

                                Graphics NumRoom = Graphics.FromImage(image2);
                                NumRoom.DrawString(_RoomInfo.Name, new Font("汉仪超粗宋简", 46, FontStyle.Regular), Brushes.White, 70, 36, sf);

                                //image2.Save(savePath + _RoomInfo.Name + "_" + seatList[i + c].ShortSeatNo + "_" + seatList[i + d].ShortSeatNo + ".jpg", ImageFormat.Jpeg);
                            }
                            Graphics img1 = Graphics.FromImage(image);
                            img1.DrawImage(image1, 0, 744, 1488, 744);

                            image2.RotateFlip(RotateFlipType.Rotate180FlipNone);
                            Graphics img2 = Graphics.FromImage(image);
                            img2.DrawImage(image2, 0, 0, 1488, 744);

                            image.Save(savePath + _RoomInfo.Name + "_" + seatList[i + a].ShortSeatNo + "_" + seatList[i + b].ShortSeatNo + "_" + seatList[i + c].ShortSeatNo + "_" + seatList[i + d].ShortSeatNo + ".jpg", ImageFormat.Jpeg);
                        }
                    }; break;
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                ErrorMessage = "导出失败," + ex.Message;
                return(false);
            }
        }
Example #9
0
        public ActionResult ShowQRCode(string param)
        {
            tb_User user = Session["User"] as tb_User;

            ViewBag.User = Session["User"] as tb_User;
            string msg;

            if (param != null && param != "")
            {
                param = SeatManage.SeatManageComm.AESAlgorithm.AESDecrypt(param.Replace(" ", "+"));
            }
            try
            {
                string path = Server.MapPath("~/QRCodeImages/" + user.SchoolNo + "_" + user.CardNo + ".jpg");
                if (!System.IO.File.Exists(path))
                {
                    string schoolNo = user.SchoolNo;
                    string cardno   = user.CardNo;
                    string AESCode  = string.Format("schoolNo={0}&cardNo={1}", schoolNo, cardno);

                    AESCode = AESAlgorithm.AESEncrypt(AESCode, "SeatManage_WeiCharCode");
                    AESCode = AESCode.Replace("+", "%2B");
                    Bitmap bitmap = QRCode.GetDimensionalCode(AESCode, 6, 8);
                    bitmap.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
                    bitmap.Dispose();
                }
                ViewBag.QRCodeImage = "/seatwx/QRCodeImages/" + user.SchoolNo + "_" + user.CardNo + ".jpg";
            }
            catch (Exception ex)
            {
                SeatManage.SeatManageComm.WriteLog.Write(ex.ToString());
            }

            if (param != null && param != "")
            {
                NameValueCollection paramlist = UrlCommon.GetQueryString(param);
                //schoolNo=2014101603&clientNo=201410160302&codeTime=2016-02-23 11:20:15
                DateTime CodeTime = Convert.ToDateTime(paramlist["codeTime"].ToString());
                string   SchoolNo = paramlist["schoolNo"].ToString();
                if (CodeTime > DateTime.Now.AddMinutes(-5))
                {
                    AppWebService.BasicAPI.GetUserNowState(ViewBag.User.SchoolNo, ViewBag.User.StudentNo, true, out msg);
                    ViewBag.UserNowState = JSONSerializer.Deserialize <J_GetUserNowState>(msg);
                    //return Content("1   " + CodeTime.ToString("yyyy-MM-dd HH:mm:ss") + " " + DateTime.Now.AddMinutes(-5).ToString("yyyy-MM-dd HH:mm:ss"));
                    return(View());
                }
                else
                {
                    AppWebService.BasicAPI.GetUserNowState(ViewBag.User.SchoolNo, ViewBag.User.StudentNo, false, out msg);
                    ViewBag.UserNowState = JSONSerializer.Deserialize <J_GetUserNowState>(msg);
                    //return Content("2   " + CodeTime.ToString("yyyy-MM-dd HH:mm:ss") + " " + DateTime.Now.AddMinutes(-5).ToString("yyyy-MM-dd HH:mm:ss"));
                    return(View());
                }
            }
            else
            {
                AppWebService.BasicAPI.GetUserNowState(ViewBag.User.SchoolNo, ViewBag.User.StudentNo, false, out msg);
                ViewBag.UserNowState = JSONSerializer.Deserialize <J_GetUserNowState>(msg);
                return(View());
            }
        }