Data Extraction
Docutains Data Extraction/ Data Capture SDK for Android can extract document data based on the detected text.
Initialization
Make sure to add the following dependency in your app's build.gradle
file:
def docutainSdkVersion = '1.7.0.2'
implementation("de.docutain:Docutain-SDK-DataExtraction:$docutainSdkVersion")
Set android.enableJetifier=true
in your gradle.properties
file.
Initialize Docutain's Android SDK as described here.
Set Analyze Configuration
If you do not need to analyze for BIC
and PaymentState
, you can skip this section and jump directly to Get the detected data.
If you want to analyze BIC
and / or PaymentState
, you need to set the analyze configuration accordingly prior to getting the data:
- Kotlin
- Java
val analyzeConfig = AnalyzeConfiguration()
analyzeConfig.readBIC = true //defaults to false
analyzeConfig.readPaymentState = true //defaults to false
if(!DocumentDataReader.setAnalyzeConfiguration(analyzeConfig)){
val error = DocutainSDK.getLastError()
}
AnalyzeConfiguration analyzeConfig = new AnalyzeConfiguration();
analyzeConfig.setReadBIC(true); //defaults to false
analyzeConfig.setReadPaymentState(true); //defaults to false
if (!DocumentDataReader.setAnalyzeConfiguration(analyzeConfig)) {
String error = DocutainSDK.getLastError();
}
Get the detected data
In order to get the detected data of the scanned or imported document, call the following line of code:
- Kotlin
- Java
//...
//scan or import file
//...
val jsonData = DocumentDataReader.analyze()
//...
//scan or import file
//...
String jsonData = DocumentDataReader.analyze();
The detected data will be returned as JSON
string. Depending on how you configured your AnalyzeConfiguration
, the structure will be one of the two following. The differences will be in IBAN, Bank and PaymentState.
When reading BIC
is deactivated (default behaviour), you will get a value IBAN
which contains all detected IBANs:
{
"Address":
{
"Name1": "Verbandsgemeindeverwaltung Nastätten",
"Name2": "",
"Name3": "",
"Zipcode": "56352",
"City": "Nastätten",
"Street": "Postfach",
"Phone": "06772 802 0",
"CustomerId": "",
"IBAN": ["DE76570928000208303503", "DE41510500150710030316"]
},
"Date": "2020-01-24",
"Amount": "940.84",
"InvoiceId": "20/VA06894/0009500",
"Reference": "RNr:20/VA06894/0009500 vom 24.01.2020"
}
When reading BIC
is activated, you will get a value Bank
which contains tuples of the BIC
and the IBAN
, if any detected:
{
"Address":
{
"Name1": "Verbandsgemeindeverwaltung Nastätten",
"Name2": "",
"Name3": "",
"Zipcode": "56352",
"City": "Nastätten",
"Street": "Postfach",
"Phone": "06772 802 0",
"CustomerId": "",
"Bank": [{"BIC": "GENODE51DIE",
"IBAN": "DE76570928000208303503"},
{"BIC": "NASSDE55XXX",
"IBAN": "DE41510500150710030316"}]
},
"Date": "2020-01-24",
"Amount": "940.84",
"InvoiceId": "20/VA06894/0009500",
"Reference": "RNr:20/VA06894/0009500 vom 24.01.2020"
}
When reading the payment state is activated, you will get a value PaymentState
which contains either Paid
or ToBePaid
:
{
"Address":
{
"Name1": "Verbandsgemeindeverwaltung Nastätten",
"Name2": "",
"Name3": "",
"Zipcode": "56352",
"City": "Nastätten",
"Street": "Postfach",
"Phone": "06772 802 0",
"CustomerId": "",
"Bank": [{"BIC": "GENODE51DIE",
"IBAN": "DE76570928000208303503"},
{"BIC": "NASSDE55XXX",
"IBAN": "DE41510500150710030316"}]
},
"Date": "2020-01-24",
"Amount": "940.84",
"InvoiceId": "20/VA06894/0009500",
"Reference": "RNr:20/VA06894/0009500 vom 24.01.2020",
"PaymentState": "ToBePaid"
}