FormRecognizerClient Klasse
- java.
lang. Object - com.
azure. ai. formrecognizer. FormRecognizerClient
- com.
public final class FormRecognizerClient
Diese Klasse stellt einen synchronen Client zum Herstellen einer Verbindung mit dem Formularerkennung Azure Cognitive Service bereit.
Dieser Client stellt synchrone Methoden bereit, die ausgeführt werden können:
- Benutzerdefinierte Formularanalyse: Extraktion und Analyse von Daten aus Formularen und Dokumenten, die für unterschiedliche Geschäftsdaten und Anwendungsfälle spezifisch sind. Verwenden Sie das benutzerdefinierte trainierte Modell, indem Sie dessen modelId an die beginRecognizeCustomForms -Methode übergeben.
- Vordefinierte Modellanalyse: Analysieren von Belegen, Visitenkarten, Rechnungen und anderen Dokumenten mit unterstützten vordefinierten Modellen Verwenden Sie die beginRecognizeReceipts -Methode, um Beleginformationen zu erkennen.
- Layoutanalyse: Extraktion und Analyse von Text, Auswahlmarkierungen, Tabellen und Begrenzungsrahmenkoordinaten aus Formularen und Dokumenten. Verwenden Sie beginRecognizeContent(InputStream form, long length) die Methode tpo, um eine Layoutanalyse durchzuführen.
- Abrufe und Rückrufe: Es enthält Mechanismen zum Abrufen des Diensts, um die status eines Analysevorgangs zu überprüfen oder Rückrufe zu registrieren, um Benachrichtigungen zu erhalten, wenn die Analyse abgeschlossen ist.
Informationen zur Verwendung der API-Versionen 2022-08-31 und höher finden Sie im Migrationshandbuch .
Dienstclients sind der Interaktionspunkt für Entwickler, um Azure Formularerkennung zu verwenden. FormRecognizerClient ist der synchrone Dienstclient und FormRecognizerAsyncClient der asynchrone Dienstclient. Die in diesem Dokument gezeigten Beispiele verwenden ein Anmeldeinformationsobjekt namens DefaultAzureCredential für die Authentifizierung, das für die meisten Szenarien geeignet ist, einschließlich lokaler Entwicklungs- und Produktionsumgebungen. Darüber hinaus wird die Verwendung einer verwalteten Identität für die Authentifizierung in Produktionsumgebungen empfohlen. Weitere Informationen zu verschiedenen Authentifizierungsmethoden und den entsprechenden Anmeldeinformationstypen finden Sie in der Dokumentation zu Azure Identity."
Beispiel: Erstellen eines FormRecognizerClient mit DefaultAzureCredential
Im folgenden Codebeispiel wird die Erstellung eines FormRecognizerClientveranschaulicht, wobei "DefaultAzureCredentialBuilder" zum Konfigurieren verwendet wird.
FormRecognizerClient formRecognizerClient = new FormRecognizerClientBuilder()
.endpoint("{endpoint}")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Weitere Informationen finden Sie weiter unten im Codebeispiel zur Verwendung AzureKeyCredential für die Clienterstellung.
FormRecognizerClient formRecognizerClient = new FormRecognizerClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("{endpoint}")
.buildClient();
Methodenzusammenfassung
Modifizierer und Typ | Methode und Beschreibung |
---|---|
Sync |
beginRecognizeBusinessCards(InputStream businessCard, long length)
Erkennt Geschäfts-Karte Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Geschäfts-Karte-Modells. |
Sync |
beginRecognizeBusinessCards(InputStream businessCard, long length, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions, Context context)
Erkennt Geschäfts-Karte Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Geschäfts-Karte-Modells. |
Sync |
beginRecognizeBusinessCardsFromUrl(String businessCardUrl)
Erkennt geschäftsspezifische Karte Daten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten geschäfts- Karte trainierten Modells. |
Sync |
beginRecognizeBusinessCardsFromUrl(String businessCardUrl, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions, Context context)
Erkennt Geschäftsdaten Karte aus Dokumenten mithilfe der optischen Zeichenerkennung (OCR) und eines vordefinierten Geschäfts Karte trainierten Modells. |
Sync |
beginRecognizeContent(InputStream form, long length)
Erkennt Layoutdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells. |
Sync |
beginRecognizeContent(InputStream form, long length, RecognizeContentOptions recognizeContentOptions, Context context)
Erkennt Inhalts-/Layoutdaten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR). |
Sync |
beginRecognizeContentFromUrl(String formUrl)
Erkennt Inhalts-/Layoutdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (OCR). |
Sync |
beginRecognizeContentFromUrl(String formUrl, RecognizeContentOptions recognizeContentOptions, Context context)
Erkennt Inhalte/Layoutdaten mithilfe der optischen Zeichenerkennung (OCR). |
Sync |
beginRecognizeCustomForms(String modelId, InputStream form, long length)
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells mit oder ohne Bezeichnungen. |
Sync |
beginRecognizeCustomForms(String modelId, InputStream form, long length, RecognizeCustomFormsOptions recognizeCustomFormsOptions, Context context)
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells. |
Sync |
beginRecognizeCustomFormsFromUrl(String modelId, String formUrl)
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells mit oder ohne Bezeichnungen. |
Sync |
beginRecognizeCustomFormsFromUrl(String modelId, String formUrl, RecognizeCustomFormsOptions recognizeCustomFormsOptions, Context context)
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells. |
Sync |
beginRecognizeIdentityDocuments(InputStream identityDocument, long length)
Analysieren Sie Identitätsdokumente mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten Modells, das für das Modell von Identitätsdokumenten trainiert wurde, um Schlüsselinformationen aus Pässen und US-Führerscheinen zu extrahieren. |
Sync |
beginRecognizeIdentityDocuments(InputStream identityDocument, long length, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions, Context context)
Analysieren Sie Identitätsdokumente mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten Modells, das für das Modell von Identitätsdokumenten trainiert wurde, um Schlüsselinformationen aus Pässen und US-Führerscheinen zu extrahieren. |
Sync |
beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl)
Analysieren Sie Identitätsdokumente mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und einem vordefinierten Modell, das auf dem Modell von Identitätsdokumenten trainiert wurde, um Schlüsselinformationen aus Pässen und US-Führerscheinen zu extrahieren. |
Sync |
beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions, Context context)
Analysieren Sie Identitätsdokumente mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und einem vordefinierten Modell, das auf dem Modell von Identitätsdokumenten trainiert wurde, um Schlüsselinformationen aus Pässen und US-Führerscheinen zu extrahieren. |
Sync |
beginRecognizeInvoices(InputStream invoice, long length)
Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Rechnungsmodells. |
Sync |
beginRecognizeInvoices(InputStream invoice, long length, RecognizeInvoicesOptions recognizeInvoicesOptions, Context context)
Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Rechnungsmodells. |
Sync |
beginRecognizeInvoicesFromUrl(String invoiceUrl)
Erkennt Rechnungsdaten aus einem Dokument mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten rechnungstrainierten Modells. |
Sync |
beginRecognizeInvoicesFromUrl(String invoiceUrl, RecognizeInvoicesOptions recognizeInvoicesOptions, Context context)
Erkennt Rechnungsdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten rechnungstrainierten Modells. |
Sync |
beginRecognizeReceipts(InputStream receipt, long length)
Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Belegmodells. |
Sync |
beginRecognizeReceipts(InputStream receipt, long length, RecognizeReceiptsOptions recognizeReceiptsOptions, Context context)
Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Belegmodells. |
Sync |
beginRecognizeReceiptsFromUrl(String receiptUrl)
Erkennt Belegdaten aus einem Dokument mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten, trainierten Modells. |
Sync |
beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeReceiptsOptions recognizeReceiptsOptions, Context context)
Erkennt Belegdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und einem vordefinierten modellierten Beleg. |
Geerbte Methoden von java.lang.Object
Details zur Methode
beginRecognizeBusinessCards
public SyncPoller
Erkennt Geschäfts-Karte Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Geschäfts-Karte-Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Weitere Informationen finden Sie hier für Felder, die in einem Geschäfts-Karte gefunden wurden.
Codebeispiel
File businessCard = new File("{local/file_path/fileName.jpg}");
byte[] fileContent = Files.readAllBytes(businessCard.toPath());
try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
formRecognizerClient.beginRecognizeBusinessCards(targetStream, businessCard.length()).getFinalResult()
.forEach(recognizedBusinessCard -> {
Map<String, FormField> recognizedFields = recognizedBusinessCard.getFields();
FormField contactNamesFormField = recognizedFields.get("ContactNames");
if (contactNamesFormField != null) {
if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
contactNamesList.stream()
.filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
.map(contactName -> {
System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
return contactName.getValue().asMap();
})
.forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
if ("FirstName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String firstName = contactName.getValue().asString();
System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
firstName, contactName.getConfidence());
}
}
if ("LastName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String lastName = contactName.getValue().asString();
System.out.printf("\tLast Name: %s, confidence: %.2f%n",
lastName, contactName.getConfidence());
}
}
}));
}
}
FormField jobTitles = recognizedFields.get("JobTitles");
if (jobTitles != null) {
if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
List<FormField> jobTitlesItems = jobTitles.getValue().asList();
jobTitlesItems.forEach(jobTitlesItem -> {
if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
String jobTitle = jobTitlesItem.getValue().asString();
System.out.printf("Job Title: %s, confidence: %.2f%n",
jobTitle, jobTitlesItem.getConfidence());
}
});
}
}
});
}
Parameters:
Returns:
beginRecognizeBusinessCards
public SyncPoller
Erkennt Geschäfts-Karte Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Geschäfts-Karte-Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Weitere Informationen finden Sie hier für Felder, die in einem Geschäfts-Karte gefunden wurden.
Codebeispiel
File businessCard = new File("{local/file_path/fileName.jpg}");
boolean includeFieldElements = true;
byte[] fileContent = Files.readAllBytes(businessCard.toPath());
try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
for (RecognizedForm recognizedForm : formRecognizerClient.beginRecognizeBusinessCards(targetStream,
businessCard.length(),
new RecognizeBusinessCardsOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements),
Context.NONE).setPollInterval(Duration.ofSeconds(5))
.getFinalResult()) {
Map<String, FormField> recognizedFields = recognizedForm.getFields();
FormField contactNamesFormField = recognizedFields.get("ContactNames");
if (contactNamesFormField != null) {
if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
contactNamesList.stream()
.filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
.map(contactName -> {
System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
return contactName.getValue().asMap();
})
.forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
if ("FirstName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String firstName = contactName.getValue().asString();
System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
firstName, contactName.getConfidence());
}
}
if ("LastName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String lastName = contactName.getValue().asString();
System.out.printf("\tLast Name: %s, confidence: %.2f%n",
lastName, contactName.getConfidence());
}
}
}));
}
}
FormField jobTitles = recognizedFields.get("JobTitles");
if (jobTitles != null) {
if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
List<FormField> jobTitlesItems = jobTitles.getValue().asList();
jobTitlesItems.forEach(jobTitlesItem -> {
if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
String jobTitle = jobTitlesItem.getValue().asString();
System.out.printf("Job Title: %s, confidence: %.2f%n",
jobTitle, jobTitlesItem.getConfidence());
}
});
}
}
}
}
Parameters:
Returns:
beginRecognizeBusinessCardsFromUrl
public SyncPoller
Erkennt geschäftsspezifische Karte Daten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten geschäfts- Karte trainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Weitere Informationen finden Sie hier für Felder, die in einem Geschäfts-Karte gefunden wurden.
Codebeispiel
String businessCardUrl = "{business_card_url}";
formRecognizerClient.beginRecognizeBusinessCardsFromUrl(businessCardUrl)
.getFinalResult()
.forEach(recognizedBusinessCard -> {
Map<String, FormField> recognizedFields = recognizedBusinessCard.getFields();
FormField contactNamesFormField = recognizedFields.get("ContactNames");
if (contactNamesFormField != null) {
if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
contactNamesList.stream()
.filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
.map(contactName -> {
System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
return contactName.getValue().asMap();
})
.forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
if ("FirstName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String firstName = contactName.getValue().asString();
System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
firstName, contactName.getConfidence());
}
}
if ("LastName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String lastName = contactName.getValue().asString();
System.out.printf("\tLast Name: %s, confidence: %.2f%n",
lastName, contactName.getConfidence());
}
}
}));
}
}
FormField jobTitles = recognizedFields.get("JobTitles");
if (jobTitles != null) {
if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
List<FormField> jobTitlesItems = jobTitles.getValue().asList();
jobTitlesItems.forEach(jobTitlesItem -> {
if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
String jobTitle = jobTitlesItem.getValue().asString();
System.out.printf("Job Title: %s, confidence: %.2f%n",
jobTitle, jobTitlesItem.getConfidence());
}
});
}
}
});
Parameters:
Returns:
beginRecognizeBusinessCardsFromUrl
public SyncPoller
Erkennt Geschäftsdaten Karte aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten business Karte trainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Weitere Informationen finden Sie hier für Felder, die in einem Geschäfts-Karte gefunden wurden.
Codebeispiel
String businessCardUrl = "{business_card_url}";
formRecognizerClient.beginRecognizeBusinessCardsFromUrl(businessCardUrl,
new RecognizeBusinessCardsOptions()
.setFieldElementsIncluded(true), Context.NONE)
.setPollInterval(Duration.ofSeconds(5)).getFinalResult()
.forEach(recognizedBusinessCard -> {
Map<String, FormField> recognizedFields = recognizedBusinessCard.getFields();
FormField contactNamesFormField = recognizedFields.get("ContactNames");
if (contactNamesFormField != null) {
if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
contactNamesList.stream()
.filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
.map(contactName -> {
System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
return contactName.getValue().asMap();
})
.forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
if ("FirstName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String firstName = contactName.getValue().asString();
System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
firstName, contactName.getConfidence());
}
}
if ("LastName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String lastName = contactName.getValue().asString();
System.out.printf("\tLast Name: %s, confidence: %.2f%n",
lastName, contactName.getConfidence());
}
}
}));
}
}
FormField jobTitles = recognizedFields.get("JobTitles");
if (jobTitles != null) {
if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
List<FormField> jobTitlesItems = jobTitles.getValue().asList();
jobTitlesItems.forEach(jobTitlesItem -> {
if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
String jobTitle = jobTitlesItem.getValue().asString();
System.out.printf("Job Title: %s, confidence: %.2f%n",
jobTitle, jobTitlesItem.getConfidence());
}
});
}
}
});
Parameters:
Returns:
beginRecognizeContent
public SyncPoller
Erkennt Layoutdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells.
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
File form = new File("{local/file_path/fileName.pdf}");
byte[] fileContent = Files.readAllBytes(form.toPath());
try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
formRecognizerClient.beginRecognizeContent(targetStream, form.length())
.getFinalResult()
.forEach(formPage -> {
System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
// Table information
System.out.println("Recognized Tables: ");
formPage.getTables()
.stream()
.flatMap(formTable -> formTable.getCells().stream())
.forEach(recognizedTableCell -> System.out.printf("%s ", recognizedTableCell.getText()));
});
}
Parameters:
Returns:
beginRecognizeContent
public SyncPoller
Erkennt Inhalts-/Layoutdaten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR).
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Die Inhaltserkennung unterstützt die automatische Spracherkennung und mehrsprachige Dokumente. Geben Sie daher nur einen Sprachcode an, wenn Sie erzwingen möchten, dass das Dokumentierte als bestimmte Sprache in der RecognizeContentOptionsverarbeitet wird.
Codebeispiel
File form = new File("{file_source_url}");
byte[] fileContent = Files.readAllBytes(form.toPath());
try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
for (FormPage formPage : formRecognizerClient.beginRecognizeContent(targetStream, form.length(),
new RecognizeContentOptions()
.setPollInterval(Duration.ofSeconds(5)), Context.NONE)
.getFinalResult()) {
System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
// Table information
System.out.println("Recognized Tables: ");
formPage.getTables()
.stream()
.flatMap(formTable -> formTable.getCells().stream())
.forEach(recognizedTableCell -> System.out.printf("%s ", recognizedTableCell.getText()));
}
}
Parameters:
Returns:
beginRecognizeContentFromUrl
public SyncPoller
Erkennt Inhalts-/Layoutdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (OCR).
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String formUrl = "{form_url}";
formRecognizerClient.beginRecognizeContentFromUrl(formUrl)
.getFinalResult()
.forEach(formPage -> {
System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
// Table information
System.out.println("Recognized Tables: ");
formPage.getTables()
.stream()
.flatMap(formTable -> formTable.getCells().stream())
.forEach(recognizedTableCell -> System.out.printf("%s ", recognizedTableCell.getText()));
});
Parameters:
Returns:
beginRecognizeContentFromUrl
public SyncPoller
Erkennt Inhalte/Layoutdaten mithilfe der optischen Zeichenerkennung (OCR).
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Die Inhaltserkennung unterstützt die automatische Spracherkennung und mehrsprachige Dokumente. Geben Sie daher nur einen Sprachcode an, wenn Sie erzwingen möchten, dass das Dokumentierte als bestimmte Sprache in der RecognizeContentOptionsverarbeitet wird.
Codebeispiel
String formPath = "{file_source_url}";
formRecognizerClient.beginRecognizeContentFromUrl(formPath,
new RecognizeContentOptions()
.setPollInterval(Duration.ofSeconds(5)), Context.NONE)
.getFinalResult()
.forEach(formPage -> {
System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
// Table information
System.out.println("Recognized Tables: ");
formPage.getTables()
.stream()
.flatMap(formTable -> formTable.getCells().stream())
.forEach(recognizedTableCell -> System.out.printf("%s ", recognizedTableCell.getText()));
});
Parameters:
Returns:
beginRecognizeCustomForms
public SyncPoller
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells mit oder ohne Bezeichnungen.
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
File form = new File("{local/file_path/fileName.jpg}");
String modelId = "{custom_trained_model_id}";
byte[] fileContent = Files.readAllBytes(form.toPath());
try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
formRecognizerClient.beginRecognizeCustomForms(modelId, targetStream, form.length())
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(formFieldMap -> formFieldMap.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
}
Parameters:
Returns:
beginRecognizeCustomForms
public SyncPoller
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells.
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
File form = new File("{local/file_path/fileName.jpg}");
String modelId = "{custom_trained_model_id}";
boolean includeFieldElements = true;
byte[] fileContent = Files.readAllBytes(form.toPath());
try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
formRecognizerClient.beginRecognizeCustomForms(modelId, targetStream, form.length(),
new RecognizeCustomFormsOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements)
.setPollInterval(Duration.ofSeconds(10)), Context.NONE)
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(formFieldMap -> formFieldMap.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
}
Parameters:
Returns:
beginRecognizeCustomFormsFromUrl
public SyncPoller
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells mit oder ohne Bezeichnungen.
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
formRecognizerClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl).getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(formFieldMap -> formFieldMap.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeCustomFormsFromUrl
public SyncPoller
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells.
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String analyzeFilePath = "{file_source_url}";
String modelId = "{model_id}";
boolean includeFieldElements = true;
formRecognizerClient.beginRecognizeCustomFormsFromUrl(modelId, analyzeFilePath,
new RecognizeCustomFormsOptions()
.setFieldElementsIncluded(includeFieldElements)
.setPollInterval(Duration.ofSeconds(10)), Context.NONE)
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(formFieldMap -> formFieldMap.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeIdentityDocuments
public SyncPoller
Analysieren Sie Identitätsdokumente mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten Modells, das für das Modell von Identitätsdokumenten trainiert wurde, um Schlüsselinformationen aus Pässen und US-Führerscheinen zu extrahieren. Hier finden Sie Felder in einem Identitätsdokument.
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
File license = new File("local/file_path/license.jpg");
ByteArrayInputStream inputStream = new ByteArrayInputStream(Files.readAllBytes(license.toPath()));
// if training polling operation completed, retrieve the final result.
formRecognizerClient.beginRecognizeIdentityDocuments(inputStream, license.length())
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(recognizedFields -> {
FormField firstNameField = recognizedFields.get("FirstName");
if (firstNameField != null) {
if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
String firstName = firstNameField.getValue().asString();
System.out.printf("First Name: %s, confidence: %.2f%n",
firstName, firstNameField.getConfidence());
}
}
FormField lastNameField = recognizedFields.get("LastName");
if (lastNameField != null) {
if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
String lastName = lastNameField.getValue().asString();
System.out.printf("Last name: %s, confidence: %.2f%n",
lastName, lastNameField.getConfidence());
}
}
FormField countryRegionFormField = recognizedFields.get("CountryRegion");
if (countryRegionFormField != null) {
if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
String countryRegion = countryRegionFormField.getValue().asCountryRegion();
System.out.printf("Country or region: %s, confidence: %.2f%n",
countryRegion, countryRegionFormField.getConfidence());
}
}
FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
if (dateOfExpirationField != null) {
if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
expirationDate, dateOfExpirationField.getConfidence());
}
}
FormField documentNumberField = recognizedFields.get("DocumentNumber");
if (documentNumberField != null) {
if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
String documentNumber = documentNumberField.getValue().asString();
System.out.printf("Document number: %s, confidence: %.2f%n",
documentNumber, documentNumberField.getConfidence());
}
}
});
Parameters:
Returns:
beginRecognizeIdentityDocuments
public SyncPoller
Analysieren Sie Identitätsdokumente mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten Modells, das für das Modell von Identitätsdokumenten trainiert wurde, um Schlüsselinformationen aus Pässen und US-Führerscheinen zu extrahieren. Hier finden Sie Felder in einem Identitätsdokument.
Der Dienst unterstützt das Abbruchen des vorgangs mit langer Ausführung nicht und gibt eine Fehlermeldung zurück, die angibt, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
File licenseDocument = new File("local/file_path/license.jpg");
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
ByteArrayInputStream inputStream = new ByteArrayInputStream(Files.readAllBytes(licenseDocument.toPath()));
// if training polling operation completed, retrieve the final result.
formRecognizerClient.beginRecognizeIdentityDocuments(inputStream,
licenseDocument.length(),
new RecognizeIdentityDocumentOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements),
Context.NONE)
.setPollInterval(Duration.ofSeconds(5))
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(recognizedFields -> {
FormField firstNameField = recognizedFields.get("FirstName");
if (firstNameField != null) {
if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
String firstName = firstNameField.getValue().asString();
System.out.printf("First Name: %s, confidence: %.2f%n",
firstName, firstNameField.getConfidence());
}
}
FormField lastNameField = recognizedFields.get("LastName");
if (lastNameField != null) {
if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
String lastName = lastNameField.getValue().asString();
System.out.printf("Last name: %s, confidence: %.2f%n",
lastName, lastNameField.getConfidence());
}
}
FormField countryRegionFormField = recognizedFields.get("CountryRegion");
if (countryRegionFormField != null) {
if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
String countryRegion = countryRegionFormField.getValue().asCountryRegion();
System.out.printf("Country or region: %s, confidence: %.2f%n",
countryRegion, countryRegionFormField.getConfidence());
}
}
FormField dateOfBirthField = recognizedFields.get("DateOfBirth");
if (dateOfBirthField != null) {
if (FieldValueType.DATE == dateOfBirthField.getValue().getValueType()) {
LocalDate dateOfBirth = dateOfBirthField.getValue().asDate();
System.out.printf("Date of Birth: %s, confidence: %.2f%n",
dateOfBirth, dateOfBirthField.getConfidence());
}
}
FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
if (dateOfExpirationField != null) {
if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
expirationDate, dateOfExpirationField.getConfidence());
}
}
FormField documentNumberField = recognizedFields.get("DocumentNumber");
if (documentNumberField != null) {
if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
String documentNumber = documentNumberField.getValue().asString();
System.out.printf("Document number: %s, confidence: %.2f%n",
documentNumber, documentNumberField.getConfidence());
}
}
});
Parameters:
Returns:
beginRecognizeIdentityDocumentsFromUrl
public SyncPoller
Analysieren Sie Identitätsdokumente mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und einem vordefinierten Modell, das auf dem Modell von Identitätsdokumenten trainiert wurde, um Schlüsselinformationen aus Pässen und US-Führerscheinen zu extrahieren. Informationen zu Feldern in einem Identitätsdokument finden Sie hier .
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String licenseDocumentUrl = "licenseDocumentUrl";
// if training polling operation completed, retrieve the final result.
formRecognizerClient.beginRecognizeIdentityDocumentsFromUrl(licenseDocumentUrl)
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(recognizedFields -> {
FormField firstNameField = recognizedFields.get("FirstName");
if (firstNameField != null) {
if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
String firstName = firstNameField.getValue().asString();
System.out.printf("First Name: %s, confidence: %.2f%n",
firstName, firstNameField.getConfidence());
}
}
FormField lastNameField = recognizedFields.get("LastName");
if (lastNameField != null) {
if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
String lastName = lastNameField.getValue().asString();
System.out.printf("Last name: %s, confidence: %.2f%n",
lastName, lastNameField.getConfidence());
}
}
FormField countryRegionFormField = recognizedFields.get("CountryRegion");
if (countryRegionFormField != null) {
if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
String countryRegion = countryRegionFormField.getValue().asCountryRegion();
System.out.printf("Country or region: %s, confidence: %.2f%n",
countryRegion, countryRegionFormField.getConfidence());
}
}
FormField dateOfBirthField = recognizedFields.get("DateOfBirth");
if (dateOfBirthField != null) {
if (FieldValueType.DATE == dateOfBirthField.getValue().getValueType()) {
LocalDate dateOfBirth = dateOfBirthField.getValue().asDate();
System.out.printf("Date of Birth: %s, confidence: %.2f%n",
dateOfBirth, dateOfBirthField.getConfidence());
}
}
FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
if (dateOfExpirationField != null) {
if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
expirationDate, dateOfExpirationField.getConfidence());
}
}
FormField documentNumberField = recognizedFields.get("DocumentNumber");
if (documentNumberField != null) {
if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
String documentNumber = documentNumberField.getValue().asString();
System.out.printf("Document number: %s, confidence: %.2f%n",
documentNumber, documentNumberField.getConfidence());
}
}
});
Parameters:
Returns:
beginRecognizeIdentityDocumentsFromUrl
public SyncPoller
Analysieren Sie Identitätsdokumente mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und einem vordefinierten Modell, das auf dem Modell von Identitätsdokumenten trainiert wurde, um Schlüsselinformationen aus Pässen und US-Führerscheinen zu extrahieren. Informationen zu Feldern in einem Identitätsdokument finden Sie hier .
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String licenseDocumentUrl = "licenseDocumentUrl";
boolean includeFieldElements = true;
// if training polling operation completed, retrieve the final result.
formRecognizerClient.beginRecognizeIdentityDocumentsFromUrl(licenseDocumentUrl,
new RecognizeIdentityDocumentOptions()
.setFieldElementsIncluded(includeFieldElements),
Context.NONE).setPollInterval(Duration.ofSeconds(5))
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(recognizedFields -> {
FormField firstNameField = recognizedFields.get("FirstName");
if (firstNameField != null) {
if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
String firstName = firstNameField.getValue().asString();
System.out.printf("First Name: %s, confidence: %.2f%n",
firstName, firstNameField.getConfidence());
}
}
FormField lastNameField = recognizedFields.get("LastName");
if (lastNameField != null) {
if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
String lastName = lastNameField.getValue().asString();
System.out.printf("Last name: %s, confidence: %.2f%n",
lastName, lastNameField.getConfidence());
}
}
FormField countryRegionFormField = recognizedFields.get("CountryRegion");
if (countryRegionFormField != null) {
if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
String countryRegion = countryRegionFormField.getValue().asCountryRegion();
System.out.printf("Country or region: %s, confidence: %.2f%n",
countryRegion, countryRegionFormField.getConfidence());
}
}
FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
if (dateOfExpirationField != null) {
if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
expirationDate, dateOfExpirationField.getConfidence());
}
}
FormField documentNumberField = recognizedFields.get("DocumentNumber");
if (documentNumberField != null) {
if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
String documentNumber = documentNumberField.getValue().asString();
System.out.printf("Document number: %s, confidence: %.2f%n",
documentNumber, documentNumberField.getConfidence());
}
}
});
Parameters:
Returns:
beginRecognizeInvoices
public SyncPoller
Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Rechnungsmodells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Die Felder auf einer Rechnung finden Sie hier .
Codebeispiel
File invoice = new File("local/file_path/invoice.jpg");
ByteArrayInputStream inputStream = new ByteArrayInputStream(Files.readAllBytes(invoice.toPath()));
// if training polling operation completed, retrieve the final result.
formRecognizerClient.beginRecognizeInvoices(inputStream, invoice.length())
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(recognizedFields -> {
FormField customAddrFormField = recognizedFields.get("CustomerAddress");
if (customAddrFormField != null) {
if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
}
}
FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
if (invoiceDateFormField != null) {
if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
System.out.printf("Invoice Date: %s, confidence: %.2f%n",
invoiceDate, invoiceDateFormField.getConfidence());
}
}
});
Parameters:
Returns:
beginRecognizeInvoices
public SyncPoller
Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Rechnungsmodells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Die Felder auf einer Rechnung finden Sie hier .
Codebeispiel
File invoice = new File("local/file_path/invoice.jpg");
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
ByteArrayInputStream inputStream = new ByteArrayInputStream(Files.readAllBytes(invoice.toPath()));
// if training polling operation completed, retrieve the final result.
formRecognizerClient.beginRecognizeInvoices(inputStream,
invoice.length(),
new RecognizeInvoicesOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements),
Context.NONE)
.setPollInterval(Duration.ofSeconds(5))
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(recognizedFields -> {
FormField customAddrFormField = recognizedFields.get("CustomerAddress");
if (customAddrFormField != null) {
if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
}
}
FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
if (invoiceDateFormField != null) {
if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
System.out.printf("Invoice Date: %s, confidence: %.2f%n",
invoiceDate, invoiceDateFormField.getConfidence());
}
}
});
Parameters:
Returns:
beginRecognizeInvoicesFromUrl
public SyncPoller
Erkennt Rechnungsdaten aus einem Dokument mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten rechnungstrainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Die Felder auf einer Rechnung finden Sie hier .
Codebeispiel
String invoiceUrl = "invoice_url";
// if training polling operation completed, retrieve the final result.
formRecognizerClient.beginRecognizeInvoicesFromUrl(invoiceUrl)
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(recognizedFields -> {
FormField customAddrFormField = recognizedFields.get("CustomerAddress");
if (customAddrFormField != null) {
if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
}
}
FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
if (invoiceDateFormField != null) {
if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
System.out.printf("Invoice Date: %s, confidence: %.2f%n",
invoiceDate, invoiceDateFormField.getConfidence());
}
}
});
Parameters:
Returns:
beginRecognizeInvoicesFromUrl
public SyncPoller
Erkennt Rechnungsdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten rechnungstrainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String invoiceUrl = "invoice_url";
boolean includeFieldElements = true;
// if training polling operation completed, retrieve the final result.
formRecognizerClient.beginRecognizeInvoicesFromUrl(invoiceUrl,
new RecognizeInvoicesOptions()
.setFieldElementsIncluded(includeFieldElements),
Context.NONE).setPollInterval(Duration.ofSeconds(5))
.getFinalResult()
.stream()
.map(RecognizedForm::getFields)
.forEach(recognizedFields -> {
FormField customAddrFormField = recognizedFields.get("CustomerAddress");
if (customAddrFormField != null) {
if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
}
}
FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
if (invoiceDateFormField != null) {
if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
System.out.printf("Invoice Date: %s, confidence: %.2f%n",
invoiceDate, invoiceDateFormField.getConfidence());
}
}
});
Parameters:
Returns:
beginRecognizeReceipts
public SyncPoller
Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Belegmodells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Hier finden Sie Felder, die auf einer Quittung gefunden wurden.
Codebeispiel
File receipt = new File("{receipt_url}");
byte[] fileContent = Files.readAllBytes(receipt.toPath());
try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
formRecognizerClient.beginRecognizeReceipts(targetStream, receipt.length()).getFinalResult()
.forEach(recognizedReceipt -> {
Map<String, FormField> recognizedFields = recognizedReceipt.getFields();
FormField merchantNameField = recognizedFields.get("MerchantName");
if (merchantNameField != null) {
if (FieldValueType.STRING == merchantNameField.getValue().getValueType()) {
String merchantName = merchantNameField.getValue().asString();
System.out.printf("Merchant Name: %s, confidence: %.2f%n",
merchantName, merchantNameField.getConfidence());
}
}
FormField merchantPhoneNumberField = recognizedFields.get("MerchantPhoneNumber");
if (merchantPhoneNumberField != null) {
if (FieldValueType.PHONE_NUMBER == merchantPhoneNumberField.getValue().getValueType()) {
String merchantAddress = merchantPhoneNumberField.getValue().asPhoneNumber();
System.out.printf("Merchant Phone number: %s, confidence: %.2f%n",
merchantAddress, merchantPhoneNumberField.getConfidence());
}
}
FormField transactionDateField = recognizedFields.get("TransactionDate");
if (transactionDateField != null) {
if (FieldValueType.DATE == transactionDateField.getValue().getValueType()) {
LocalDate transactionDate = transactionDateField.getValue().asDate();
System.out.printf("Transaction Date: %s, confidence: %.2f%n",
transactionDate, transactionDateField.getConfidence());
}
}
FormField receiptItemsField = recognizedFields.get("Items");
if (receiptItemsField != null) {
System.out.printf("Receipt Items: %n");
if (FieldValueType.LIST == receiptItemsField.getValue().getValueType()) {
List<FormField> receiptItems = receiptItemsField.getValue().asList();
receiptItems.stream()
.filter(receiptItem -> FieldValueType.MAP == receiptItem.getValue().getValueType())
.map(formField -> formField.getValue().asMap())
.forEach(formFieldMap -> formFieldMap.forEach((key, formField) -> {
if ("Quantity".equals(key)) {
if (FieldValueType.FLOAT == formField.getValue().getValueType()) {
Float quantity = formField.getValue().asFloat();
System.out.printf("Quantity: %f, confidence: %.2f%n",
quantity, formField.getConfidence());
}
}
}));
}
}
});
}
Parameters:
Returns:
beginRecognizeReceipts
public SyncPoller
Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Belegmodells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Hier finden Sie Felder, die auf einer Quittung gefunden wurden.
Codebeispiel
File receipt = new File("{local/file_path/fileName.jpg}");
boolean includeFieldElements = true;
byte[] fileContent = Files.readAllBytes(receipt.toPath());
try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
for (RecognizedForm recognizedForm : formRecognizerClient
.beginRecognizeReceipts(targetStream, receipt.length(),
new RecognizeReceiptsOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements)
.setLocale(FormRecognizerLocale.EN_US)
.setPollInterval(Duration.ofSeconds(5)), Context.NONE)
.getFinalResult()) {
Map<String, FormField> recognizedFields = recognizedForm.getFields();
FormField merchantNameField = recognizedFields.get("MerchantName");
if (merchantNameField != null) {
if (FieldValueType.STRING == merchantNameField.getValue().getValueType()) {
String merchantName = merchantNameField.getValue().asString();
System.out.printf("Merchant Name: %s, confidence: %.2f%n",
merchantName, merchantNameField.getConfidence());
}
}
FormField merchantPhoneNumberField = recognizedFields.get("MerchantPhoneNumber");
if (merchantPhoneNumberField != null) {
if (FieldValueType.PHONE_NUMBER == merchantPhoneNumberField.getValue().getValueType()) {
String merchantAddress = merchantPhoneNumberField.getValue().asPhoneNumber();
System.out.printf("Merchant Phone number: %s, confidence: %.2f%n",
merchantAddress, merchantPhoneNumberField.getConfidence());
}
}
FormField transactionDateField = recognizedFields.get("TransactionDate");
if (transactionDateField != null) {
if (FieldValueType.DATE == transactionDateField.getValue().getValueType()) {
LocalDate transactionDate = transactionDateField.getValue().asDate();
System.out.printf("Transaction Date: %s, confidence: %.2f%n",
transactionDate, transactionDateField.getConfidence());
}
}
FormField receiptItemsField = recognizedFields.get("Items");
if (receiptItemsField != null) {
System.out.printf("Receipt Items: %n");
if (FieldValueType.LIST == receiptItemsField.getValue().getValueType()) {
List<FormField> receiptItems = receiptItemsField.getValue().asList();
receiptItems.stream()
.filter(receiptItem -> FieldValueType.MAP == receiptItem.getValue().getValueType())
.map(formField -> formField.getValue().asMap())
.forEach(formFieldMap -> formFieldMap.forEach((key, formField) -> {
if ("Quantity".equals(key)) {
if (FieldValueType.FLOAT == formField.getValue().getValueType()) {
Float quantity = formField.getValue().asFloat();
System.out.printf("Quantity: %f, confidence: %.2f%n",
quantity, formField.getConfidence());
}
}
}));
}
}
}
}
Parameters:
Returns:
beginRecognizeReceiptsFromUrl
public SyncPoller
Erkennt Belegdaten aus einem Dokument mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten, trainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Hier finden Sie Felder, die auf einer Quittung gefunden wurden.
Codebeispiel
String receiptUrl = "{file_source_url}";
formRecognizerClient.beginRecognizeReceiptsFromUrl(receiptUrl)
.getFinalResult()
.forEach(recognizedReceipt -> {
Map<String, FormField> recognizedFields = recognizedReceipt.getFields();
FormField merchantNameField = recognizedFields.get("MerchantName");
if (merchantNameField != null) {
if (FieldValueType.STRING == merchantNameField.getValue().getValueType()) {
String merchantName = merchantNameField.getValue().asString();
System.out.printf("Merchant Name: %s, confidence: %.2f%n",
merchantName, merchantNameField.getConfidence());
}
}
FormField merchantPhoneNumberField = recognizedFields.get("MerchantPhoneNumber");
if (merchantPhoneNumberField != null) {
if (FieldValueType.PHONE_NUMBER == merchantPhoneNumberField.getValue().getValueType()) {
String merchantAddress = merchantPhoneNumberField.getValue().asPhoneNumber();
System.out.printf("Merchant Phone number: %s, confidence: %.2f%n",
merchantAddress, merchantPhoneNumberField.getConfidence());
}
}
FormField transactionDateField = recognizedFields.get("TransactionDate");
if (transactionDateField != null) {
if (FieldValueType.DATE == transactionDateField.getValue().getValueType()) {
LocalDate transactionDate = transactionDateField.getValue().asDate();
System.out.printf("Transaction Date: %s, confidence: %.2f%n",
transactionDate, transactionDateField.getConfidence());
}
}
FormField receiptItemsField = recognizedFields.get("Items");
if (receiptItemsField != null) {
System.out.printf("Receipt Items: %n");
if (FieldValueType.LIST == receiptItemsField.getValue().getValueType()) {
List<FormField> receiptItems = receiptItemsField.getValue().asList();
receiptItems.stream()
.filter(receiptItem -> FieldValueType.MAP == receiptItem.getValue().getValueType())
.map(formField -> formField.getValue().asMap())
.forEach(formFieldMap -> formFieldMap.forEach((key, formField) -> {
if ("Quantity".equals(key)) {
if (FieldValueType.FLOAT == formField.getValue().getValueType()) {
Float quantity = formField.getValue().asFloat();
System.out.printf("Quantity: %f, confidence: %.2f%n",
quantity, formField.getConfidence());
}
}
}));
}
}
});
Parameters:
Returns:
beginRecognizeReceiptsFromUrl
public SyncPoller
Erkennt Belegdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und einem vordefinierten modellierten Beleg.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt mit einer Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String receiptUrl = "{receipt_url}";
formRecognizerClient.beginRecognizeReceiptsFromUrl(receiptUrl,
new RecognizeReceiptsOptions()
.setLocale(FormRecognizerLocale.EN_US)
.setPollInterval(Duration.ofSeconds(5))
.setFieldElementsIncluded(true), Context.NONE)
.getFinalResult()
.forEach(recognizedReceipt -> {
Map<String, FormField> recognizedFields = recognizedReceipt.getFields();
FormField merchantNameField = recognizedFields.get("MerchantName");
if (merchantNameField != null) {
if (FieldValueType.STRING == merchantNameField.getValue().getValueType()) {
String merchantName = merchantNameField.getValue().asString();
System.out.printf("Merchant Name: %s, confidence: %.2f%n",
merchantName, merchantNameField.getConfidence());
}
}
FormField merchantPhoneNumberField = recognizedFields.get("MerchantPhoneNumber");
if (merchantPhoneNumberField != null) {
if (FieldValueType.PHONE_NUMBER == merchantPhoneNumberField.getValue().getValueType()) {
String merchantAddress = merchantPhoneNumberField.getValue().asPhoneNumber();
System.out.printf("Merchant Phone number: %s, confidence: %.2f%n",
merchantAddress, merchantPhoneNumberField.getConfidence());
}
}
FormField transactionDateField = recognizedFields.get("TransactionDate");
if (transactionDateField != null) {
if (FieldValueType.DATE == transactionDateField.getValue().getValueType()) {
LocalDate transactionDate = transactionDateField.getValue().asDate();
System.out.printf("Transaction Date: %s, confidence: %.2f%n",
transactionDate, transactionDateField.getConfidence());
}
}
FormField receiptItemsField = recognizedFields.get("Items");
if (receiptItemsField != null) {
System.out.printf("Receipt Items: %n");
if (FieldValueType.LIST == receiptItemsField.getValue().getValueType()) {
List<FormField> receiptItems = receiptItemsField.getValue().asList();
receiptItems.stream()
.filter(receiptItem -> FieldValueType.MAP == receiptItem.getValue().getValueType())
.map(formField -> formField.getValue().asMap())
.forEach(formFieldMap -> formFieldMap.forEach((key, formField) -> {
if ("Quantity".equals(key)) {
if (FieldValueType.FLOAT == formField.getValue().getValueType()) {
Float quantity = formField.getValue().asFloat();
System.out.printf("Quantity: %f, confidence: %.2f%n",
quantity, formField.getConfidence());
}
}
}));
}
}
});
Parameters:
Returns:
Gilt für:
Azure SDK for Java