新版本外国人永久居留身份证EST-100身份证阅读器接口更新

本文主要是介绍新版本外国人永久居留身份证EST-100身份证阅读器接口更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下是新版本外国人永久居留身份证读取C#代码:

     //身份证信息 *******************************************************************************************************private void button4_Click(object sender, EventArgs e)
{
if (FormIsOpenReader.IsOpenReader != 1)
{richTextBox_idCard_data.Text += "EST-100身份证读卡器连接失败,请先打开设备 \r\n";return;
}int t_nRe = 99;
int t_nType = 1; //设置身份证读卡类型:0,文本信息;1,文本 + 照片;2,文本 + 照片 + 指纹,不读指纹读卡速度更快一些!
StringBuilder t_szPicPath = new StringBuilder("IDphoto.jpg"); //定义相片名称
StringBuilder t_arrChMsg = new StringBuilder(256);
IDINFO idInfo = new IDINFO(); //结构体
t_nRe = Donsee_ReadIDCard(t_nType, t_szPicPath, ref idInfo, t_arrChMsg); //注意结构体入参
if (t_nRe == 0)
{Donsee_Beep();if (idInfo.certType.ToString().Trim() == "I")//2017版外国人永居证{richTextBox_idCard_data.Text += "读取成功,证件类型:2017版外国人永居证\r\n";richTextBox_idCard_data.Text += "证件类型标识:" + idInfo.certType.ToString().Trim() + "\r\n";richTextBox_idCard_data.Text += "英文姓名:" + idInfo.ENfullname + "\r\n";richTextBox_idCard_data.Text += "性    别:" + idInfo.sex + "\r\n";richTextBox_idCard_data.Text += "永居证号码:" + idInfo.number + "\r\n";richTextBox_idCard_data.Text += "国籍:" + idInfo.people + idInfo.Nationality + "\r\n";richTextBox_idCard_data.Text += "中文姓名:" + idInfo.name + "\r\n";richTextBox_idCard_data.Text += "有效期开始:" + idInfo.signdate + "\r\n";richTextBox_idCard_data.Text += "有效期结束:" + idInfo.validterm + "\r\n";richTextBox_idCard_data.Text += "出生日期:" + idInfo.birthday + "\r\n";richTextBox_idCard_data.Text += "证件版本号:" + idInfo.certVersion + "\r\n";richTextBox_idCard_data.Text += "申请机关代码:" + idInfo.organs + "\r\n";if (t_nType != 0){richTextBox_idCard_data.Text += "照片原始数据:" + idInfo.Photo.Substring(0, 50) + "..\r\n";}//外国人永居证没有指纹数据}else if (idInfo.certType.ToString().Trim() == "J")//港澳台居民居住证{richTextBox_idCard_data.Text += "读取成功,证件类型:港澳台通行证\r\n";richTextBox_idCard_data.Text += "证件类型标识:" + idInfo.certType.ToString().Trim() + "\r\n";richTextBox_idCard_data.Text += "姓名:" + idInfo.name + "\r\n";richTextBox_idCard_data.Text += "性别:" + idInfo.sex + "\r\n";richTextBox_idCard_data.Text += "出生日期:" + idInfo.birthday + "\r\n";richTextBox_idCard_data.Text += "地址:" + idInfo.address + "\r\n";richTextBox_idCard_data.Text += "港澳台居住证号码:" + idInfo.number + "\r\n";richTextBox_idCard_data.Text += "签发机关:" + idInfo.organs + "\r\n";richTextBox_idCard_data.Text += "有效期开始:" + idInfo.signdate + "\r\n";richTextBox_idCard_data.Text += "有效期结束:" + idInfo.validterm + "\r\n";richTextBox_idCard_data.Text += "通行证号码:" + idInfo.passNu + "\r\n";richTextBox_idCard_data.Text += "签发次数:" + idInfo.signCount + "\r\n";if (t_nType != 0){richTextBox_idCard_data.Text += "照片原始数据:" + idInfo.Photo.Substring(0, 50) + "..\r\n";}if (t_nType == 2){richTextBox_idCard_data.Text += "指纹原始数据:" + idInfo.figData.Substring(0, 50) + "..\r\n";}}else if (idInfo.certType.ToString().Trim() == "Y")//新版外国人永居证{richTextBox_idCard_data.Text += "读取成功,证件类型:新版外国人永居证\r\n";richTextBox_idCard_data.Text += "证件标识:" + idInfo.certType.ToString().Trim() + "\r\n";richTextBox_idCard_data.Text += "中文姓名:" + idInfo.name + "\r\n";richTextBox_idCard_data.Text += "性    别:" + idInfo.sex + "\r\n";richTextBox_idCard_data.Text += "换证次数:" + idInfo.certVersion + "\r\n";richTextBox_idCard_data.Text += "出生日期:" + idInfo.birthday + "\r\n";richTextBox_idCard_data.Text += "英文姓名:" + idInfo.ENfullname + " " +idInfo.Other + "\r\n"; //注意英文姓名,包括了备用,才是完整姓名richTextBox_idCard_data.Text += "证件号码:" + idInfo.number + "\r\n";richTextBox_idCard_data.Text += "有效期开始:" + idInfo.signdate + "\r\n";richTextBox_idCard_data.Text += "有效期结束:" + idInfo.validterm + "\r\n";richTextBox_idCard_data.Text += "国籍代码:" + idInfo.people + "/" + idInfo.Nationality + "\r\n";richTextBox_idCard_data.Text += "当次申请受理机构:" + idInfo.organs + "\r\n";if (idInfo.address=="") {richTextBox_idCard_data.Text += "既往版本永居证号码:无" + "\r\n";}else { richTextBox_idCard_data.Text += "既往版本永居证号码:" + idInfo.address + "\r\n";}if (t_nType != 0){richTextBox_idCard_data.Text += "照片数据:" + idInfo.Photo.Substring(0, 50) + "..\r\n"; //原始数据2048字符,界面只显示50字符}}else  //(idInfo.certType.ToString().Trim() == "0")  //居民身份证{richTextBox_idCard_data.Text += "读取成功,证件类型:居民身份证\r\n";richTextBox_idCard_data.Text += "证件标识:" + idInfo.certType.ToString().Trim() + "\r\n";richTextBox_idCard_data.Text += "姓    名:" + idInfo.name + "\r\n";richTextBox_idCard_data.Text += "性    别:" + idInfo.sex + "\r\n";richTextBox_idCard_data.Text += "名    族:" + idInfo.people + "\r\n";richTextBox_idCard_data.Text += "出生日期:" + idInfo.birthday + "\r\n";richTextBox_idCard_data.Text += "住    址:" + idInfo.address + "\r\n";richTextBox_idCard_data.Text += "发证日期:" + idInfo.signdate + "\r\n";richTextBox_idCard_data.Text += "有效日期:" + idInfo.validterm + "\r\n";richTextBox_idCard_data.Text += "证件号码:" + idInfo.number + "\r\n";richTextBox_idCard_data.Text += "发证机关:" + idInfo.organs + "\r\n";richTextBox_idCard_data.Text += "其    他:" + idInfo.Other + "\r\n";if (t_nType != 0){richTextBox_idCard_data.Text += "照片数据:" + idInfo.Photo.Substring(0, 50) + "..\r\n"; //原始数据2048字符,界面只显示50字符}if (t_nType == 2){richTextBox_idCard_data.Text += "指纹数据:" + idInfo.figData.Substring(0, 50) + "..\r\n"; //原始数据2048字符,界面只显示50字符}}if (t_nType != 0)   //显示照片文件{ // pictureBox_idCard_photo.Image = Image.FromFile(t_szPicPath.ToString());// 显示照片,这个方法二次刷卡可能不显示照片,故改用下面方法来显示照片Image imgtmp = Image.FromFile(t_szPicPath.ToString());//这样做可以及时释放文件占用Bitmap img = new Bitmap(imgtmp);imgtmp.Dispose();pictureBox_idCard_photo.Image = img;}
}
else
{richTextBox_idCard_data.Text += "身份证读取失败:"+ t_arrChMsg.ToString() + ",返回值:" + t_nRe + "\r\n";
}
}

这篇关于新版本外国人永久居留身份证EST-100身份证阅读器接口更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/226335

相关文章

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

hdu1689(线段树成段更新)

两种操作:1、set区间[a,b]上数字为v;2、查询[ 1 , n ]上的sum 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdl

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

hdu 1754 I Hate It(线段树,单点更新,区间最值)

题意是求一个线段中的最大数。 线段树的模板题,试用了一下交大的模板。效率有点略低。 代码: #include <stdio.h>#include <string.h>#define TREE_SIZE (1 << (20))//const int TREE_SIZE = 200000 + 10;int max(int a, int b){return a > b ? a :

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

GIS图形库更新2024.8.4-9.9

更多精彩内容请访问 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信:digital_twin123 Cesium 本期发布了1.121 版本。重大新闻,Cesium被Bentley收购。 ✨ 功能和改进 默认启用 MSAA,采样 4 次。若要关闭 MSAA,则可以设置scene.msaaSamples = 1。但是通过比较,发现并没有多大改善。

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓