Below is an end-to-end example of submitting a ExtractCheck request using Python programming language:
# Simple script to make and process the results of an ExtractCheck request to the LEADTOOLS CloudServices.
# In order to run this script, the following changes will need to be added:
# 1) Place your Application ID in the appId variable.
# 2) Place your Application Password in the password variable
# The script will perform the following operations in order:
# 1)Perform an ExtractCheck request to the LEADTOOLS CloudServices. A successfully made request will return a unique identifier.
# 2)We will then query the services using the GUID -- if the file is finished processing, the body will contain all the
# request data.
# 3)We will take the json data that was returned, parse it, and display all the information that was returned.
#
#
# This script makes use of the Requests Python library.
# More information about this library can be found here: http://docs.python-requests.org/en/master/
import requests
import sys
import time
servicesUrl = "https://azure.leadtools.com/api/"
# The application ID.
appId = "Replace with Application ID"
# The application password.
password = "Replace with Application Password"
# The first page in the file to mark for processing
firstPage = 1
# Sending a value of -1 will indicate to the services that the rest of the pages in the file should be processed.
lastPage = -1
# We will be uploading the file via a URl. Files can also be passed by adding a PostFile to the request. Only 1 file will be accepted per request.
# The services will use the following priority when determining what a request is trying to do GUID > URL > Request Body Content
fileURL = 'http://demo.leadtools.com/JavaScript/BankCheckReader/Resources/Samples/BankCheck.jpg'
baseRecognitionUrl = '{}Recognition/ExtractCheck?firstPage={}&lastPage={}&fileurl={}'
formattedRecognitionUrl = baseRecognitionUrl.format(
servicesUrl, firstPage, lastPage, fileURL)
request = requests.post(formattedRecognitionUrl, auth=(appId, password))
# If uploading a file alongside the HTTP request
#baseRecognitionUrl ='{}Recognition/ExtractCheck?firstPage={}&lastPage={}'
#formattedRecognitionUrl = baseRecognitionUrl.format(
# servicesUrl,firstPage, lastPage)
#file = {'file' : open('path/to/file', 'rb')}
#request = requests.post(
# formattedRecognitionUrl, auth=(appId, password), files = file)
if request.status_code != 200:
print("Error sending the conversion request")
print(request.text)
sys.exit()
# Grab the GUID from the Request
guid = request.text
print("Unique ID returned by the services: " + guid + "\n")
# Now, we need to Query the results
print("Now Querying Results....")
baseQueryUrl = '{}Query?id={}'
formattedQueryUrl = baseQueryUrl.format(servicesUrl, guid)
while True: # Poll the services to determine if the request has finished processing
request = requests.post(formattedQueryUrl, auth=(appId, password))
returnedData = request.json()
if returnedData['FileStatus'] != 100 and returnedData['FileStatus'] != 123:
break
time.sleep(5)
print("File finished processing with file status: " +
str(returnedData['FileStatus']))
if returnedData['FileStatus'] != 200:
sys.exit()
try:
print("Results:")
returnedJson = returnedData['RequestData']
for requestObject in returnedJson:
print("Service Type: " + requestObject['ServiceType'])
if requestObject['ServiceType'] == 'Recognition' and requestObject['RecognitionType'] == 'MICR':
print("MICR Data:")
for micrObject in requestObject['data']:
for micrResult in micrObject:
print(micrResult + ":")
print("Text: " + micrObject[micrResult]['Text'])
print("Bounds: " + micrObject[micrResult]['Bounds'])
print()
except Exception as e:
print("Failed to Parse JSON")
print(str(e))