Freigeben über


FormRecognizerClient Klasse

  • java.lang.Object
    • com.azure.ai.formrecognizer.FormRecognizerClient

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:

  1. 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.
  2. Vordefinierte Modellanalyse: Analysieren von Belegen, Visitenkarten, Rechnungen und anderen Dokumenten mit unterstützten vordefinierten Modellen Verwenden Sie die beginRecognizeReceipts -Methode, um Beleginformationen zu erkennen.
  3. 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.
  4. 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
SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<FormPage>> beginRecognizeContent(InputStream form, long length)

Erkennt Layoutdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines benutzerdefinierten trainierten Modells.

SyncPoller<FormRecognizerOperationResult,List<FormPage>> beginRecognizeContent(InputStream form, long length, RecognizeContentOptions recognizeContentOptions, Context context)

Erkennt Inhalts-/Layoutdaten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR).

SyncPoller<FormRecognizerOperationResult,List<FormPage>> beginRecognizeContentFromUrl(String formUrl)

Erkennt Inhalts-/Layoutdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (OCR).

SyncPoller<FormRecognizerOperationResult,List<FormPage>> beginRecognizeContentFromUrl(String formUrl, RecognizeContentOptions recognizeContentOptions, Context context)

Erkennt Inhalte/Layoutdaten mithilfe der optischen Zeichenerkennung (OCR).

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeInvoices(InputStream invoice, long length)

Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Rechnungsmodells.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeInvoicesFromUrl(String invoiceUrl)

Erkennt Rechnungsdaten aus einem Dokument mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten rechnungstrainierten Modells.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeInvoicesFromUrl(String invoiceUrl, RecognizeInvoicesOptions recognizeInvoicesOptions, Context context)

Erkennt Rechnungsdaten aus Dokumenten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten rechnungstrainierten Modells.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeReceipts(InputStream receipt, long length)

Erkennt Daten aus den bereitgestellten Dokumentdaten mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten trainierten Belegmodells.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeReceiptsFromUrl(String receiptUrl)

Erkennt Belegdaten aus einem Dokument mithilfe der optischen Zeichenerkennung (Optical Character Recognition, OCR) und eines vordefinierten, trainierten Modells.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> 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> 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.

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:

businessCard - Die Daten des Unternehmens Karte, von dem Geschäftsinformationen Karte erkannt werden sollen.
length - Die genaue Länge der Daten.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zum Erkennen des Geschäfts Karte abfragt, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeBusinessCards

public SyncPoller> 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.

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:

businessCard - Die Daten des Unternehmens Karte, von dem Geschäftsinformationen Karte erkannt werden sollen.
length - Die genaue Länge der Daten.
recognizeBusinessCardsOptions - Die zusätzliche konfigurierbareRecognizeBusinessCardsOptions, die bei der Analyse eines Geschäfts übergeben werden kann, Karte.
context - Zusätzlicher Kontext, der während des Dienstaufrufs über die HTTP-Pipeline übergeben wird.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zum Erkennen des Geschäfts Karte abfragt, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeBusinessCardsFromUrl

public SyncPoller> 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.

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:

businessCardUrl - Die Quell-URL für das Eingabegeschäft Karte.

Returns:

Ein SyncPoller<T,U> , um den Fortschritt des Vorgangs zum Erkennen des Geschäfts Karte abzufragen, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeBusinessCardsFromUrl

public SyncPoller> beginRecognizeBusinessCardsFromUrl(String businessCardUrl, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions, Context context)

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:

businessCardUrl - Die Quell-URL für das Eingabegeschäft Karte.
recognizeBusinessCardsOptions - Das zusätzliche konfigurierbareRecognizeBusinessCardsOptions, das bei der Analyse eines Geschäfts Karte übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs durch die HTTP-Pipeline übergeben wird.

Returns:

EinSyncPoller<T,U>, um den Fortschritt des Geschäftserkennungsvorgangs Karte abzufragen, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeContent

public SyncPoller> beginRecognizeContent(InputStream form, long length)

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:

form - Die Daten des Formulars, aus dem Inhaltsinformationen erkannt werden sollen.
length - Die genaue Länge der Daten.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zum Erkennen von Inhalten abfragt, bis er abgeschlossen ist, ein Fehler aufgetreten ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von FormPagezurück.

beginRecognizeContent

public SyncPoller> beginRecognizeContent(InputStream form, long length, RecognizeContentOptions recognizeContentOptions, Context context)

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:

form - Die Daten des Formulars, aus dem Inhaltsinformationen erkannt werden sollen.
length - Die genaue Länge der Daten.
recognizeContentOptions - Das zusätzliche konfigurierbare RecognizeContentOptions Element, das beim Erkennen von Inhalt/Layout in einem Formular übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs durch die HTTP-Pipeline übergeben wird.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zum Erkennen von Inhalten abfragt, bis er abgeschlossen ist, ein Fehler aufgetreten ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von FormPagezurück.

beginRecognizeContentFromUrl

public SyncPoller> beginRecognizeContentFromUrl(String formUrl)

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:

formUrl - Die URL des zu analysierenden Formulars.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zum Erkennen des Inhaltsformulars abfragt, bis er abgeschlossen ist, ein Fehler aufgetreten ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von FormPagezurück.

beginRecognizeContentFromUrl

public SyncPoller> beginRecognizeContentFromUrl(String formUrl, RecognizeContentOptions recognizeContentOptions, Context context)

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:

formUrl - Die Quell-URL des Eingabeformulars.
recognizeContentOptions - Das zusätzliche konfigurierbare RecognizeContentOptions Element, das beim Erkennen von Inhalt/Layout in einem Formular übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs durch die HTTP-Pipeline übergeben wird.

Returns:

Eine SyncPoller<T,U> , die den Layouterkennungsvorgang abfragt, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von FormPagezurück.

beginRecognizeCustomForms

public SyncPoller> 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.

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:

modelId - Die UUID-Zeichenfolge formatiert benutzerdefinierte trainierte Modell-ID, die verwendet werden soll.
form - Die Daten des Formulars, aus dem Formularinformationen erkannt werden sollen.
length - Die genaue Länge der Daten.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zum Erkennen des benutzerdefinierten Formulars abruft, bis er abgeschlossen ist, ein Fehler aufgetreten ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeCustomForms

public SyncPoller> 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.

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:

modelId - Die UUID-Zeichenfolge formatiert benutzerdefinierte trainierte Modell-ID, die verwendet werden soll.
form - Die Daten des Formulars, aus dem Formularinformationen erkannt werden sollen.
length - Die genaue Länge der Daten.
recognizeCustomFormsOptions - Die zusätzliche konfigurierbare RecognizeCustomFormsOptions , die beim Erkennen benutzerdefinierter Formulare übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs durch die HTTP-Pipeline übergeben wird.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zum Erkennen des benutzerdefinierten Formulars abruft, bis er abgeschlossen ist, ein Fehler aufgetreten ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeCustomFormsFromUrl

public SyncPoller> 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.

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:

modelId - Die UUID-Zeichenfolge formatiert benutzerdefinierte trainierte Modell-ID, die verwendet werden soll.
formUrl - Die URL des zu analysierenden Formulars.

Returns:

Ein SyncPoller<T,U> , um den Fortschritt des Benutzerdefinierten Formularerkennungsvorgangs abzufragen, bis er abgeschlossen, fehlgeschlagen oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeCustomFormsFromUrl

public SyncPoller> 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.

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:

modelId - Die UUID-Zeichenfolge formatiert benutzerdefinierte trainierte Modell-ID, die verwendet werden soll.
formUrl - Die Quell-URL des Eingabeformulars.
recognizeCustomFormsOptions - Die zusätzliche konfigurierbare RecognizeCustomFormsOptions , die beim Erkennen benutzerdefinierter Formulare übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs durch die HTTP-Pipeline übergeben wird.

Returns:

Ein SyncPoller<T,U> , um den Fortschritt des Benutzerdefinierten Formularerkennungsvorgangs abzufragen, bis er abgeschlossen, fehlgeschlagen oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeIdentityDocuments

public SyncPoller> 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. 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:

identityDocument - Die Daten des Identitätsdokuments, aus dem Identitätsdokumentinformationen erkannt werden sollen.
length - Die genaue Länge der Daten.

Returns:

Eine SyncPoller<T,U> , die den Vorgang "Identitätsdokument erkennen" abfragt, bis er abgeschlossen, fehlgeschlagen oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeIdentityDocuments

public SyncPoller> 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. 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:

identityDocument - Die Daten des Identitätsdokuments, aus dem Informationen erkannt werden sollen.
length - Die genaue Länge der Daten.
recognizeIdentityDocumentOptions - Das zusätzliche konfigurierbare RecognizeIdentityDocumentOptions , das bei der Analyse eines Identitätsdokuments möglicherweise übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs durch die HTTP-Pipeline übergeben wird.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zum Erkennen des Identitätsdokuments abfragt, bis er abgeschlossen, fehlgeschlagen oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeIdentityDocumentsFromUrl

public SyncPoller> 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. 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:

identityDocumentUrl - Die Quell-URL zum Eingabeidentitätsdokument.

Returns:

Ein SyncPoller<T,U> , um den Fortschritt des Vorgangs zum Erkennen von Identitätsdokumenten abzufragen, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeIdentityDocumentsFromUrl

public SyncPoller> 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. 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:

identityDocumentUrl - Die Quell-URL zum Eingabeidentitätsdokument.
recognizeIdentityDocumentOptions - Die zusätzliche konfigurierbare RecognizeIdentityDocumentOptions , die bei der Analyse eines Identitätsdokuments übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs über die HTTP-Pipeline übergeben wird.

Returns:

Ein SyncPoller<T,U> , um den Fortschritt des Vorgangs zum Erkennen von Identitätsdokumenten abzufragen, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeInvoices

public SyncPoller> beginRecognizeInvoices(InputStream invoice, long length)

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:

invoice - Die Daten der Rechnung, aus der Rechnungsinformationen erkannt werden sollen.
length - Die genaue Länge der Daten.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zur Erkennung der Rechnung abruft, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeInvoices

public SyncPoller> 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.

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:

invoice - Die Daten der Rechnung, aus der Rechnungsinformationen erkannt werden sollen.
length - Die genaue Länge der Daten.
recognizeInvoicesOptions - Das zusätzliche konfigurierbare RecognizeInvoicesOptions , das bei der Analyse einer Rechnung übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs über die HTTP-Pipeline übergeben wird.

Returns:

Eine SyncPoller<T,U> , die den Vorgang zur Erkennung der Rechnung abruft, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeInvoicesFromUrl

public SyncPoller> beginRecognizeInvoicesFromUrl(String invoiceUrl)

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:

invoiceUrl - Die URL des zu analysierenden Rechnungsdokuments.

Returns:

Ein SyncPoller<T,U> , um den Fortschritt des Vorgangs zur Erkennung der Rechnung abzufragen, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeInvoicesFromUrl

public SyncPoller> beginRecognizeInvoicesFromUrl(String invoiceUrl, RecognizeInvoicesOptions recognizeInvoicesOptions, Context context)

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:

invoiceUrl - Die Quell-URL zum Eingaberechnungsdokument.
recognizeInvoicesOptions - Die zusätzliche konfigurierbare RecognizeInvoicesOptions , die bei der Analyse einer Rechnung übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs über die HTTP-Pipeline übergeben wird.

Returns:

Ein SyncPoller<T,U> , um den Fortschritt des Vorgangs zur Erkennung der Rechnung abzufragen, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeReceipts

public SyncPoller> beginRecognizeReceipts(InputStream receipt, long length)

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:

receipt - Die Daten des Empfangs, aus dem Beleginformationen erkannt werden sollen.
length - Die genaue Länge der Daten.

Returns:

Ein SyncPoller<T,U> , der den Vorgang zum Erkennen des Empfangs abfragt, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeReceipts

public SyncPoller> 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.

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:

receipt - Die Daten des Empfangs, aus dem Beleginformationen erkannt werden sollen.
length - Die genaue Länge der Daten.
recognizeReceiptsOptions - Die zusätzliche konfigurierbare RecognizeReceiptsOptions , die bei der Analyse eines Belegs übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs über die HTTP-Pipeline übergeben wird.

Returns:

Ein SyncPoller<T,U> , der den Vorgang zum Erkennen des Empfangs abfragt, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeReceiptsFromUrl

public SyncPoller> beginRecognizeReceiptsFromUrl(String receiptUrl)

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:

receiptUrl - Die URL des zu analysierenden Belegs.

Returns:

Ein SyncPoller<T,U> , um den Fortschritt des Vorgangs zum Erkennen von Empfangsbestätigungen abzufragen, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

beginRecognizeReceiptsFromUrl

public SyncPoller> beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeReceiptsOptions recognizeReceiptsOptions, Context context)

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:

receiptUrl - Die Quell-URL zum Eingabebeleg.
recognizeReceiptsOptions - Die zusätzliche konfigurierbare RecognizeReceiptsOptions , die bei der Analyse eines Belegs übergeben werden kann.
context - Zusätzlicher Kontext, der während des Dienstaufrufs über die HTTP-Pipeline übergeben wird.

Returns:

Ein SyncPoller<T,U> , um den Fortschritt des Vorgangs zum Erkennen von Empfangsbestätigungen abzufragen, bis er abgeschlossen ist, fehlgeschlagen ist oder abgebrochen wurde. Der abgeschlossene Vorgang gibt eine Liste von RecognizedFormzurück.

Gilt für: