Passport Scanner/Reader: EPR5100i Full Page


OCR passport reader is a full page, multifunctional document scanner, compliant to ICAO 9303 .
OCR the MRZ and VIZ information from ICAO 9303 and non-ICAO standard travel documents;
Optional spec with reading ISO 14443 Type A/B Standard ID Cards, these Passpor
scanner/reader provides ideal solutions to identify passports, IDs, Driver license, visa and other
travel documents.


Support Documents List:


MRZ of 3 Types: (2*36) (2*44) (3*30)
Chinese/Malaysian/Thailand/Singapore/Taiwan/Macau ID cards
Driver license of P. R. China/New Zealand/California
Exit-entry Permit to HK/Macau; Mainland residents traveling to Taiwan passes; Home Return
Permit; Taiwan residents traveling to the Mainland Travel Permit; Taiwan National Health
Insurance Card;

Other document customized acceptable.




1. Fast MRZ Reading: less than 3 second.
2. Abundantly integrated case and sample source code for reference.
3. Captures image in different wavelength light-Visible, IR and UV.
4. Cost Effective Appropriate.




EPR5100(I) is a multi-functional passport reader with 3.0 Megapixels camera that can read multiple document types: e-passports, passports, visas, ID cards and other travel documents.
This Passport reader can read passports, ID card, Driver license and OCR custom service for other travel documents. It is a compact, full-page passport reader.
It provides perfect solutions for scanning passport, e-passport, visa and other documents, which make it can be applied to variety of industries. Printed data is extracted from the entire data page, from MRZ,OCR and 1D ,2D barcode, while digital data from contactless ICs. Multiple illumination sources: visible, IR and UV are available, the most importantly is that we can provide the customized service as per the clients requirement.




The device intended for:

  1.  Capture full-page document images (OCR processing)
  2.  ICAO Doc 9303 specification (Part1-4)
  3.  1D & 2D barcode reading
  4.  Illumination: Visible, IR, UV image
  5.  MRZ reading, VIZ OCR reading: included (zones defined by users)
  6.  Reading information from contactless identification chips
  7.  RFID reading (ID card and e-Passport);
  8.  1D/2D Barcode reading (Optional)


Also check our:


Mechanical Data
-Size: 235*250*148mm
-Case: ABS plastic
-Operating temperature: -10-50
-Operating humidity: 20%-95%
-Weight: 2.10-2.20 (Net)
2.60-2.70 (Gross)

Software development kit (SDK)
-Supported OS
-Windows 7 (32/64bit), Windows Vista (32/64bit), Windows XP (32/64bit), Windows Server 2003 (32/64bit), Windows Server 2008 (32/64bit), Windows 8 (32bit/64bit)
Programming languages
-C/ C++, C#, Visual Basic 6.0, Delphi, VB.NET, Java


Document image and processing
Document formats
-ID-1 (identity card)
-ID-2 (passport card, visa)
-ID-3 (passport)
-other document formats up to 96127 mm

Machine readable Zone
Supported MRZ formats
in conformity with ICAO 9303:




  • Border control
  • Visa centers of Embassies
  • Aviation security services
  • Immigration services
  • Hotels
  • Travel agencies
  • Airports, train and bus terminals
  • Local police station
  • Car rental and leasing companies
  • Premise and hospitality security service
  • And ect



Quick Integration Instructions


1. Confirm project requirements:


-1.1 What type of credentials to identify.
-1.2 Whether to read the ID chip.
-1.3 Whether to read the passport chip.
-1.4 Whether the purchased equipment supports reading the first two types of chip functions.


2. What should I have to start?


The document identification system consists of three parts:
-2.1 Passport scanner device
-2.2 Authorization file
-2.3 Document identification core dll (in the demo software installation path)
Make sure you have above three parts at the time of initialization.

Important files:

After installing setup.exe in the SDK, there are documents path is as follows:
C: \ Program Files (x86) \ Passport Reader \ Samples
C: \ Program Files (x86) \ Passport Reader \ HelpDoc
C: \ Program Files (x86) \ Passport Reader \ HelpDoc


3. Recognition method:


-3.1 Automatic identification: to add the ID type to automatic identification list.
After placing the ID in the device, the ID type will be automatically identified.
It is suitable for unattended scenarios such as gates and self-service machines, or scenarios where you want to simplify operations.

-3.2 Manual identification: Some application devices support only manual identification, such operate requires customized buttons configuration. The operate buttons are bound to the corresponding ID type MainID parameter, which is identified during identification. The OCR core will identify according to this type of document. It is suitable for hotel front desks and bank counters.


4. How do I get the identified text fields?


-4.1 For the Websocket integration method, the recognition result is placed in a string, which can be split by a separator to get the result you want.

-4.2 For CS, the text fields of each certificate are different, and the field index will be given in the document (refer to the Document Identification SDK Development Manual 3.3), the required field values and field names can be obtained according to the index.


5. Integrated main points:


-5.1 BS Framework:

BS Please use websocket for integration, quick and easy!

–5.1.1. Install
Find websocket package, decompress it, Copy “IDCardLicense.dat and UserId.txt” into the authorityFiles folder, and then install.After installation finished,there will be a websocket service in the service list, please check websocket installation manual for further detail.

Here we talk about the development part: BS integrated recognition device is different from other BS systems. The project only needs to integrate one page. All computers connected to the device access this page. Then Websocket service installed locally on the computer will return recognition result to this page. We have demo page for your evaluate.

–5.1.2. Integrated


Follow with example page,the main process code as:


① Establish a link. This link is the address of a fixed service and cannot be changed.

var readyState = new array(“on connection”, “connection established”, “Closing connection”, “Close connection”);
var host = “wss://”;
websocket = new WebSocket(host);
websocket.onopen = function(){//statusbar.innerHTML = readyState[websocket.readyState];
var statusbar = document.getElementById(“statusbar”);
statusbar.value = readyState[websocket.readyState];


② Send various identification instructions code.
websocket.send(“10000”);//Send automatic identification instruction, When set identify certificate automatically, send “10000” one time only.

websocket.send(“18201″+myselect.options[myindex].value);//Send manual identification command. When set manually identify,send 18201 + Certificate Type ID (Section 3.1 of SDK Development Manual), send one time only.

Common commands:
websocket.send(“181026150”);//Passport chip content read setting command.
websocket.send(“1810331”);//Set save picture feature, 18103 + 31 means all pictures are saved.
websocket.send(“181041”);//Whether to recognize the reading area.
websocket.send(“181061”);//Whether to return base64 format pictures.
websocket.send(“1810731”);//Which pictures return base64 format, all pictures are returned by default.


③ Get the return result

function AutoPhotoAndRecog()
var msg=document.getElementById(“devicetype”);
var str = msg.value;
setTimeout(“getInformation()”,2000); //If it is scanner, delay 2 seconds.

function getInformation()
if(websocket != null)//Check if websoket has read information,if there is, return to the page.

setInterval(“AutoPhotoAndRecog()”, 1000);//Check if information is returned every second.


④ Get the result string (all the information returned is given as a string, you need to split it yourself)


websocket.onmessage = function(event){
var str = event.dat;
var strsub = str;


Get ID picture’s base64 code and split:

for(var i = 1; i<len; i++)//
var strType = seek[i][0] + seek[i][1];
seek[i] = seek[i].substr(2);
if(strType == “01”)//White light.
seek[i] =”data:image/jpeg;base64,” + seek[i];
else if(strType == “02”)//Infrared light.
seek[i] =”data:image/jpeg;base64,” + seek[i];
else if(strType == “04”)//Ultraviolet light.
seek[i] =”data:image/jpeg;base64,” + seek[i];
else if(strType == “08”)//Layout avatar.
strhead = seek[i];
seek[i] =”data:image/jpeg;base64,” + seek[i];
else if(strType == “16”)//Chip avatar.
strChipHead = seek[i];
seek[i] =”data:image/jpeg;base64,” + seek[i];


⑤ Disconnect.

//Disconnect when closing page.
window.onclose = function()
//Disconnect one time when refreshing the page.


If your project time is urgent,directly copy and paste all the functions from sample code even there are somme do not related to the page format you need, it will not effect the application. Such integration make project goes fast but still stable.



-5.2 CS Framework


Find the routine of the programming language you want to use, identify + read the passport chip by default C: \ Program Files (x86) \ Passport Reader \ Samples \ OCR & Contactless Chip Reading
We provide various languages sample, C ++, C #, VB, Delphi.
Test in accordance with document <Detailed Use of ID Document SDK Sample> :

–5.2.1 Like other CS programs, the integration of C ++, C #, VB, and Delphi all need to import the dll library first, and running without importing the library will report an error.


—5.2.2 The core library consists of two sets of cores:
— the ID chip part(for chinese ID;
— OCR + passport reader core.
They have different routines sample, but their core is put together. You can find the test in the path given above, and then follow the main process development below.

–5.2.3 The following process must be included in the development, each step must be indispensable, otherwise there will be problems when the program is finished.

The following uses C ++ as an example:

— The main process of reading Chinese ID card chip (refer to the second-generation chinese ID card reader development manual for the interface):


① Loading DLL:

//Load dynamic library: sdtapi.dll, WltRS.dll.
bool CNIDapiDlg::LoadDLL(void)
{Clog log(__FUNCTION__);}
AfxMessageBox(_T(”Loading DLL fail”));
return false;

② Open port:

int nRes = 1;
for (int iPort=1001; iPort<=1016; iPort++)
nRes = fpSDT_OpenPort(iPort);
if (nRes==0x90)
m_nOpenPort = iPort; // Open port success.
AfxMessageBox(_T(“Open port fail”));
return false;
return true;


③ When the software is closed, closed the port and release the DLL core.

Void CNIDapiDlg::Ontimer(UINT_PTR nIDEvent)

The timer enquiry the ID card continuously. To read the chip automatically, add the timer. To read the chip manually, don’t add the timer.


Void CNIDapiDlg::OnClose()
if (m_bLoad!=NULL)


— OCR + Read the Passport Chip section (refer to the Document Identification SDK Development Manual for the interface):


//Load the core library and initialize the core.

int CEPRSampleDemoDlg::InitCardDll()
return 0;

m_hIDCard = LoadLibrary(_T(“IDCard.dll“));
if(NULL == m_hIDCard)
return 1001;

int nRet = pInitIDCard(m_strUserID,0,NULL);
if(0 != nRet)
return nRet;

m_bInitSuccess = true;|
return 0;

More Photos:


    Related Products