Beispiel #1
0
        //new function by prkasit on Nov'14 2019
        private void ReadNewPIDCard()
        {
            try
            {
                CARD      = new PIDCard();
                CARD_TYPE = "PID";
                Personal personal = idcard.readAllPhoto();
                if (personal != null)
                {
                    CARD.NO            = personal.Citizenid;
                    CARD.TH_TITLE      = personal.Th_Prefix;
                    CARD.TH_FIRST_NAME = personal.Th_Firstname;
                    CARD.TH_LAST_NAME  = personal.Th_Lastname;
                    CARD.EN_TITLE      = personal.En_Prefix;
                    CARD.EN_FIRST_NAME = personal.En_Firstname;
                    CARD.EN_LAST_NAME  = personal.En_Lastname;
                    CARD.BIRTH_DATE    = CardHelper.DateFormat(personal.Birthday.ToString("yyyyMMdd"));
                    CARD.HOME_NO       = personal.addrHouseNo;
                    CARD.MOO           = personal.addrVillageNo;
                    CARD.SOI           = personal.addrLane;
                    CARD.ROAD          = personal.addrRoad;
                    CARD.TUMBON        = personal.addrTambol;
                    CARD.AMPHOE        = personal.addrAmphur;
                    CARD.PROVINCE      = personal.addrProvince;
                    CARD.GENDER        = personal.Sex;
                    CARD.PHOTO         = personal.PhotoBitmap;
                    CARD.CARD_IMAGE    = personal.PhotoBitmap;

                    try
                    {
                        byte[] byteImage = null;


                        byteImage = personal.PhotoRaw;// stream.ToArray();

                        CARD.BYTE_IMAGE = byteImage;
                    }
                    catch (Exception ex)
                    {
                    }
                    READ_CARD_STATUS = true;
                }
                else if (idcard.ErrorCode() > 0)
                {
                    MessageBox.Show(idcard.Error());
                }
            }
            catch (Exception ex)
            {
                READ_CARD_STATUS = false;
                MessageBox.Show("ไม่พบเครื่องอ่านบัตรประชาชน หรืออ่านบัตรไม่สำเร็จ!!! " + ex.Message);
            }
        }
Beispiel #2
0
        protected int ReadPIDCard()
        {
            try
            {
                string strTerminal = CARD_READER;
                if (string.IsNullOrEmpty(CARD_READER))
                {
                    strTerminal = "Identiv uTrust 2700 R Smart Card Reader 0";
                }
                CARD      = new PIDCard();
                CARD_TYPE = "PID";
                IntPtr obj = CardHelper.SelectReader(strTerminal);

                int nInsertCard = 0;
                nInsertCard = RDNID.connectCardRD(obj);
                if (nInsertCard != 0)
                {
                    String m;
                    m = String.Format(" error no {0} ", nInsertCard);
                    MessageBox.Show(m);

                    RDNID.disconnectCardRD(obj);
                    RDNID.deselectReaderRD(obj);
                    return(nInsertCard);
                }

                byte[] id  = new byte[30];
                int    res = RDNID.getNIDNumberRD(obj, id);
                if (res != DefineConstants.NID_SUCCESS)
                {
                    return(res);
                }
                string NIDNum = CardHelper.ByteToString(id);


                byte[] data = new byte[1024];
                res = RDNID.getNIDTextRD(obj, data, data.Length);
                if (res != DefineConstants.NID_SUCCESS)
                {
                    return(res);
                }

                string NIDData = CardHelper.ByteToString(data);
                if (NIDData == "")
                {
                    MessageBox.Show("Read Text error");
                }
                else
                {
                    string[] fields = NIDData.Split('#');
                    CARD.NO            = NIDNum;
                    CARD.TH_TITLE      = fields[(int)Enums.NID_FIELD.TITLE_T];
                    CARD.TH_FIRST_NAME = fields[(int)Enums.NID_FIELD.NAME_T];
                    CARD.TH_MID_NAME   = fields[(int)Enums.NID_FIELD.MIDNAME_T];
                    CARD.TH_LAST_NAME  = fields[(int)Enums.NID_FIELD.SURNAME_T];
                    CARD.EN_TITLE      = fields[(int)Enums.NID_FIELD.TITLE_E];
                    CARD.EN_FIRST_NAME = fields[(int)Enums.NID_FIELD.NAME_E];
                    CARD.EN_MID_NAME   = fields[(int)Enums.NID_FIELD.MIDNAME_E];
                    CARD.EN_LAST_NAME  = fields[(int)Enums.NID_FIELD.SURNAME_E];
                    CARD.BIRTH_DATE    = CardHelper.DateFormat(fields[(int)Enums.NID_FIELD.BIRTH_DATE]);
                    CARD.HOME_NO       = fields[(int)Enums.NID_FIELD.HOME_NO];
                    CARD.MOO           = fields[(int)Enums.NID_FIELD.MOO];
                    CARD.TROK          = fields[(int)Enums.NID_FIELD.TROK];
                    CARD.SOI           = fields[(int)Enums.NID_FIELD.SOI];
                    CARD.ROAD          = fields[(int)Enums.NID_FIELD.ROAD];
                    CARD.TUMBON        = fields[(int)Enums.NID_FIELD.TUMBON];
                    CARD.AMPHOE        = fields[(int)Enums.NID_FIELD.AMPHOE];
                    CARD.PROVINCE      = fields[(int)Enums.NID_FIELD.PROVINCE];

                    if (fields[(int)Enums.NID_FIELD.GENDER] == "1")
                    {
                        CARD.GENDER = "ชาย";
                    }
                    else
                    {
                        CARD.GENDER = "หญิง";
                    }
                }

                byte[] NIDPicture = new byte[1024 * 5];
                int    imgsize    = NIDPicture.Length;
                res = RDNID.getNIDPhotoRD(obj, NIDPicture, out imgsize);
                if (res != DefineConstants.NID_SUCCESS)
                {
                    return(res);
                }

                byte[] byteImage = NIDPicture;
                if (byteImage == null)
                {
                    MessageBox.Show("Read Photo error");
                }
                else
                {
                    //m_picPhoto
                    Image img = Image.FromStream(new MemoryStream(byteImage));
                    CARD.PHOTO      = new Bitmap(img, 270 - 2, 180 - 2);
                    CARD.CARD_IMAGE = img;
                    CARD.BYTE_IMAGE = byteImage;
                }
                RDNID.disconnectCardRD(obj);
                RDNID.deselectReaderRD(obj);
                READ_CARD_STATUS = true;
            }
            catch (Exception ex)
            {
                READ_CARD_STATUS = false;
                MessageBox.Show("ไม่พบเครื่องอ่านบัตรประชาชน หรืออ่านบัตรไม่สำเร็จ!!! " + ex.Message);
            }

            return(0);
        }