FormRecognizerAsyncClient Klasse
- java.
lang. Object - com.
azure. ai. formrecognizer. FormRecognizerAsyncClient
- com.
public final class FormRecognizerAsyncClient
Diese Klasse stellt einen asynchronen Client zum Herstellen einer Verbindung mit dem Formularerkennung Azure Cognitive Service bereit.
Dieser Client bietet asynchrone Methoden für die Ausführung:
- 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, Auswahlzeichen, Tabellen und Begrenzungsrahmenkoordinaten aus Formularen und Dokumenten. Verwenden Sie beginRecognizeContent die Methode tpo, um eine Layoutanalyse durchzuführen.
- Abrufe und Rückrufe: Es umfasst Mechanismen zum Abrufen des Diensts, um die status eines Analysevorgangs zu überprüfen oder Rückrufe zu registrieren, um Benachrichtigungen zu empfangen, wenn die Analyse abgeschlossen ist.
Hinweis: Dieser Client unterstützt V2_1 nur und niedriger. Es wird empfohlen, DocumentAnalysisClient eine neuere Dienstversion und DocumentModelAdministrationClientzu verwenden.
Informationen zur Verwendung der API-Versionen 2022-08-31 und höher finden Sie im Migrationsleitfaden .
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 empfohlen, die verwaltete Identität für die Authentifizierung in Produktionsumgebungen zu verwenden. Weitere Informationen zu verschiedenen Authentifizierungsmethoden und den entsprechenden Anmeldeinformationstypen finden Sie in der Azure Identity-Dokumentation.
Beispiel: Erstellen eines FormRecognizerClients mit DefaultAzureCredential
Im folgenden Codebeispiel wird die Erstellung einer FormRecognizerAsyncClientveranschaulicht, die zum Konfigurieren von "DefaultAzureCredentialBuilder" verwendet wird.
FormRecognizerAsyncClient formRecognizerAsyncClient = new FormRecognizerClientBuilder()
.endpoint("{endpoint}")
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Weitere Informationen finden Sie im folgenden Codebeispiel zur Verwendung AzureKeyCredential für die Clienterstellung.
FormRecognizerAsyncClient formRecognizerAsyncClient = new FormRecognizerClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("{endpoint}")
.buildAsyncClient();
Methodenzusammenfassung
Modifizierer und Typ | Methode und Beschreibung |
---|---|
Poller |
beginRecognizeBusinessCards(Flux<ByteBuffer> businessCard, long length)
Erkennt Geschäftsdaten Karte mithilfe der optischen Zeichenerkennung (OCR) und eines vordefinierten Geschäfts Karte trainierten Modells. |
Poller |
beginRecognizeBusinessCards(Flux<ByteBuffer> businessCard, long length, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions)
Erkennt Geschäftsdaten Karte aus Dokumenten mithilfe der optischen Zeichenerkennung (OCR) und eines vordefinierten Geschäfts Karte trainierten Modells. |
Poller |
beginRecognizeBusinessCardsFromUrl(String businessCardUrl)
Erkennt Geschäfts- Karte Daten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten business Karte trainierten Modells. |
Poller |
beginRecognizeBusinessCardsFromUrl(String businessCardUrl, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions)
Erkennt Geschäfts- Karte Daten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten business Karte trainierten Modells. |
Poller |
beginRecognizeContent(Flux<ByteBuffer> form, long length)
Erkennt Inhalte/Layoutdaten mithilfe der optischen Zeichenerkennung (OCR). |
Poller |
beginRecognizeContent(Flux<ByteBuffer> form, long length, RecognizeContentOptions recognizeContentOptions)
Erkennt Inhalte/Layoutdaten mithilfe der optischen Zeichenerkennung (OCR). |
Poller |
beginRecognizeContentFromUrl(String formUrl)
Erkennt Inhalts-/Layoutdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (OCR). |
Poller |
beginRecognizeContentFromUrl(String formUrl, RecognizeContentOptions recognizeContentOptions)
Erkennt Layoutdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells. |
Poller |
beginRecognizeCustomForms(String modelId, Flux<ByteBuffer> form, long length)
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells mit oder ohne Bezeichnungen. |
Poller |
beginRecognizeCustomForms(String modelId, Flux<ByteBuffer> form, long length, RecognizeCustomFormsOptions recognizeCustomFormsOptions)
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells mit oder ohne Bezeichnungen. |
Poller |
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. |
Poller |
beginRecognizeCustomFormsFromUrl(String modelId, String formUrl, RecognizeCustomFormsOptions recognizeCustomFormsOptions)
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells. |
Poller |
beginRecognizeIdentityDocuments(Flux<ByteBuffer> identityDocument, long length)
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. |
Poller |
beginRecognizeIdentityDocuments(Flux<ByteBuffer> identityDocument, long length, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions)
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. |
Poller |
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. |
Poller |
beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions)
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. |
Poller |
beginRecognizeInvoices(Flux<ByteBuffer> invoice, long length)
Erkennt Rechnungsdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten modelltrainierten Rechnungsmodells. |
Poller |
beginRecognizeInvoices(Flux<ByteBuffer> invoice, long length, RecognizeInvoicesOptions recognizeInvoicesOptions)
Erkennt Rechnungsdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten rechnungstrainierten Modells. |
Poller |
beginRecognizeInvoicesFromUrl(String invoiceUrl)
Erkennt Rechnungsdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten modelltrainierten Rechnungsmodells. |
Poller |
beginRecognizeInvoicesFromUrl(String invoiceUrl, RecognizeInvoicesOptions recognizeInvoicesOptions)
Erkennt Rechnungsdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten modelltrainierten Rechnungsmodells. |
Poller |
beginRecognizeReceipts(Flux<ByteBuffer> receipt, long length)
Erkennt Belegdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten, durch Beleg trainierten Modells. |
Poller |
beginRecognizeReceipts(Flux<ByteBuffer> receipt, long length, RecognizeReceiptsOptions recognizeReceiptsOptions)
Erkennt Belegdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und einem vordefinierten modellierten Beleg. |
Poller |
beginRecognizeReceiptsFromUrl(String receiptUrl)
Erkennt Belegdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten, durch Beleg trainierten Modells. |
Poller |
beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeReceiptsOptions recognizeReceiptsOptions)
Erkennt Belegdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten, durch Beleg trainierten Modells. |
Geerbte Methoden von java.lang.Object
Details zur Methode
beginRecognizeBusinessCards
public PollerFlux
Erkennt Geschäftsdaten Karte mithilfe der optischen Zeichenerkennung (OCR) und eines vordefinierten Geschäfts Karte 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.
Weitere Informationen finden Sie hier für Felder, die in einem geschäftsspezifischen Karte gefunden werden. Beachten Sie, dass die businessCard
übergebenen Wiederholungen wieder wiedergeben können müssen, wenn Wiederholungen aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss jedes Mal dieselben Daten erzeugen, wenn sie abonniert werden.
Codebeispiel
File businessCard = new File("{local/file_path/fileName.jpg}");
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(businessCard.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeBusinessCards(buffer, businessCard.length())
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedBusinessCards -> {
for (int i = 0; i < recognizedBusinessCards.size(); i++) {
RecognizedForm recognizedForm = recognizedBusinessCards.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized Business Card page %d -----------%n", i);
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 PollerFlux
Erkennt Geschäftsdaten Karte aus Dokumenten mithilfe der optischen Zeichenerkennung (OCR) und eines vordefinierten Geschäfts Karte 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.
Weitere Informationen finden Sie hier für Felder, die in einem geschäftsspezifischen Karte gefunden werden. Beachten Sie, dass die businessCard
übergebenen Wiederholungen wieder wiedergeben können müssen, wenn Wiederholungen aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss jedes Mal dieselben Daten erzeugen, wenn sie abonniert werden.
Codebeispiel
File businessCard = new File("{local/file_path/fileName.jpg}");
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(businessCard.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeBusinessCards(buffer, businessCard.length(),
new RecognizeBusinessCardsOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedBusinessCards -> {
for (int i = 0; i < recognizedBusinessCards.size(); i++) {
RecognizedForm recognizedForm = recognizedBusinessCards.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized Business Card page %d -----------%n", i);
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 PollerFlux
Erkennt Geschäftsdaten Karte mithilfe der optischen Zeichenerkennung (OCR) und eines vordefinierten Geschäfts Karte 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.
Weitere Informationen finden Sie hier für Felder, die in einem geschäftsspezifischen Karte gefunden werden.
Codebeispiel
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.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:
beginRecognizeBusinessCardsFromUrl
public PollerFlux
Erkennt Geschäfts- Karte Daten 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 eine 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}";
boolean includeFieldElements = true;
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeBusinessCardsFromUrl(businessCardUrl,
new RecognizeBusinessCardsOptions()
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedBusinessCards -> {
for (int i = 0; i < recognizedBusinessCards.size(); i++) {
RecognizedForm recognizedBusinessCard = recognizedBusinessCards.get(i);
Map<String, FormField> recognizedFields = recognizedBusinessCard.getFields();
System.out.printf("----------- Recognized Business Card page %d -----------%n", i);
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 PollerFlux
Erkennt Inhalte/Layoutdaten mithilfe der optischen Zeichenerkennung (OCR).
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Beachten Sie, dass das data
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Codebeispiel
File form = new File("{local/file_path/fileName.jpg}");
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(form.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeContent(buffer, form.length())
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(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().forEach(formTable ->
formTable.getCells().forEach(recognizedTableCell ->
System.out.printf("%s ", recognizedTableCell.getText())));
});
Parameters:
Returns:
beginRecognizeContent
public PollerFlux
Erkennt Inhalte/Layoutdaten mithilfe der optischen Zeichenerkennung (OCR).
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Beachten Sie, dass das data
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Die Inhaltserkennung unterstützt die automatische Spracherkennung und mehrsprachige Dokumente. Stellen Sie daher nur einen Sprachcode bereit, wenn Sie erzwingen möchten, dass das Dokumentierte als bestimmte Sprache in der RecognizeContentOptionsverarbeitet wird.
Codebeispiel
File form = new File("{local/file_path/fileName.jpg}");
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(form.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeContent(buffer, form.length(),
new RecognizeContentOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setPollInterval(Duration.ofSeconds(5)))
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(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().forEach(formTable -> formTable.getCells().forEach(recognizedTableCell ->
System.out.printf("%s ", recognizedTableCell.getText())));
});
Parameters:
Returns:
beginRecognizeContentFromUrl
public PollerFlux
Erkennt Inhalts-/Layoutdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (OCR).
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String formUrl = "{formUrl}";
formRecognizerAsyncClient.beginRecognizeContentFromUrl(formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(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().forEach(formTable ->
formTable.getCells().forEach(recognizedTableCell ->
System.out.printf("%s ", recognizedTableCell.getText())));
});
Parameters:
Returns:
beginRecognizeContentFromUrl
public PollerFlux
Erkennt Layoutdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Die Inhaltserkennung unterstützt die automatische Spracherkennung und mehrsprachige Dokumente. Stellen Sie daher nur einen Sprachcode bereit, wenn Sie erzwingen möchten, dass das Dokumentierte als bestimmte Sprache in der RecognizeContentOptionsverarbeitet wird.
Codebeispiel
String formUrl = "{formUrl}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeContentFromUrl(formUrl,
new RecognizeContentOptions().setPollInterval(Duration.ofSeconds(5)))
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(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().forEach(formTable ->
formTable.getCells().forEach(recognizedTableCell ->
System.out.printf("%s ", recognizedTableCell.getText())));
});
Parameters:
Returns:
beginRecognizeCustomForms
public PollerFlux
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 den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Beachten Sie, dass das data
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Codebeispiel
File form = new File("{local/file_path/fileName.jpg}");
String modelId = "{custom_trained_model_id}";
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(form.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomForms(modelId, buffer, form.length())
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.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 PollerFlux
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 den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Beachten Sie, dass das data
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Codebeispiel
File form = new File("{local/file_path/fileName.jpg}");
String modelId = "{custom_trained_model_id}";
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(form.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomForms(modelId, buffer, form.length(),
new RecognizeCustomFormsOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements)
.setPollInterval(Duration.ofSeconds(5)))
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldName, formField) -> {
System.out.printf("Field text: %s%n", fieldName);
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 PollerFlux
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 den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.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 PollerFlux
Erkennt Formulardaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String formUrl = "{formUrl}";
String modelId = "{model_id}";
boolean includeFieldElements = true;
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl,
new RecognizeCustomFormsOptions()
.setFieldElementsIncluded(includeFieldElements)
.setPollInterval(Duration.ofSeconds(10)))
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.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 PollerFlux
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 eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Beachten Sie, dass das identityDocument
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Codebeispiel
File license = new File("local/file_path/license.jpg");
Flux<ByteBuffer> buffer =
toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(license.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeIdentityDocuments(buffer, license.length())
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedIDDocumentResult -> {
for (int i = 0; i < recognizedIDDocumentResult.size(); i++) {
RecognizedForm recognizedForm = recognizedIDDocumentResult.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized license info for page %d -----------%n", i);
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 PollerFlux
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 eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Beachten Sie, dass das identityDocument
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Codebeispiel
File licenseDocument = new File("local/file_path/license.jpg");
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer =
toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(licenseDocument.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeIdentityDocuments(buffer,
licenseDocument.length(),
new RecognizeIdentityDocumentOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedIDDocumentResult -> {
for (int i = 0; i < recognizedIDDocumentResult.size(); i++) {
RecognizedForm recognizedForm = recognizedIDDocumentResult.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized license info for page %d -----------%n", i);
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:
beginRecognizeIdentityDocumentsFromUrl
public PollerFlux
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 eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String idDocumentUrl = "idDocumentUrl";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeIdentityDocumentsFromUrl(idDocumentUrl)
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedIDDocumentResult -> {
for (int i = 0; i < recognizedIDDocumentResult.size(); i++) {
RecognizedForm recognizedForm = recognizedIDDocumentResult.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized license info for page %d -----------%n", i);
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:
beginRecognizeIdentityDocumentsFromUrl
public PollerFlux
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 eine 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.
formRecognizerAsyncClient.beginRecognizeIdentityDocumentsFromUrl(licenseDocumentUrl,
new RecognizeIdentityDocumentOptions()
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedIDDocumentResult -> {
for (int i = 0; i < recognizedIDDocumentResult.size(); i++) {
RecognizedForm recognizedForm = recognizedIDDocumentResult.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized license info for page %d -----------%n", i);
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 PollerFlux
Erkennt Rechnungsdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten modelltrainierten Rechnungsmodells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Die Felder auf einer Rechnung finden Sie hier . Beachten Sie, dass das invoice
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Codebeispiel
File invoice = new File("local/file_path/invoice.jpg");
Flux<ByteBuffer> buffer =
toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(invoice.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeInvoices(buffer, invoice.length())
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedInvoices -> {
for (int i = 0; i < recognizedInvoices.size(); i++) {
RecognizedForm recognizedForm = recognizedInvoices.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
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 PollerFlux
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 eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Die Felder auf einer Rechnung finden Sie hier . Beachten Sie, dass das invoice
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Codebeispiel
File invoice = new File("local/file_path/invoice.jpg");
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer =
toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(invoice.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeInvoices(buffer,
invoice.length(),
new RecognizeInvoicesOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedInvoices -> {
for (int i = 0; i < recognizedInvoices.size(); i++) {
RecognizedForm recognizedForm = recognizedInvoices.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
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 PollerFlux
Erkennt Rechnungsdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten modelltrainierten Rechnungsmodells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine 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.
formRecognizerAsyncClient.beginRecognizeInvoicesFromUrl(invoiceUrl)
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedInvoices -> {
for (int i = 0; i < recognizedInvoices.size(); i++) {
RecognizedForm recognizedForm = recognizedInvoices.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
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 PollerFlux
Erkennt Rechnungsdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten modelltrainierten Rechnungsmodells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine 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.
formRecognizerAsyncClient.beginRecognizeInvoicesFromUrl(invoiceUrl,
new RecognizeInvoicesOptions()
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedInvoices -> {
for (int i = 0; i < recognizedInvoices.size(); i++) {
RecognizedForm recognizedForm = recognizedInvoices.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
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 PollerFlux
Erkennt Belegdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten, durch Beleg trainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Hier finden Sie Felder, die auf einer Quittung gefunden wurden. Beachten Sie, dass das receipt
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Codebeispiel
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.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:
beginRecognizeReceipts
public PollerFlux
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 eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Hier finden Sie Felder, die auf einer Quittung gefunden wurden. Beachten Sie, dass das receipt
übergebene wiederspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux
muss bei jedem Abonnieren die gleichen Daten erzeugen.
Codebeispiel
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.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:
beginRecognizeReceiptsFromUrl
public PollerFlux
Erkennt Belegdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten, durch Beleg trainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Hier finden Sie Felder, die auf einer Quittung gefunden wurden.
Codebeispiel
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.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:
beginRecognizeReceiptsFromUrl
public PollerFlux
Erkennt Belegdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten, durch Beleg trainierten Modells.
Der Dienst unterstützt den Abbruch des zeitintensiven Vorgangs nicht und gibt eine Fehlermeldung zurück, die darauf hinweist, dass keine Abbruchunterstützung vorhanden ist.
Codebeispiel
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.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:
Gilt für:
Azure SDK for Java