Partager via


FormRecognizerAsyncClient Classe

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

public final class FormRecognizerAsyncClient

Cette classe fournit un client asynchrone pour se connecter au Form Recognizer Azure Cognitive Service.

Ce client fournit des méthodes asynchrones pour effectuer les opérations suivantes :

  1. Analyse de formulaire personnalisée : extraction et analyse de données à partir de formulaires et de documents spécifiques à des données métier et à des cas d’usage distincts. Utilisez le modèle entraîné personnalisé en passant son modelId dans la beginRecognizeCustomForms méthode .
  2. Analyse des modèles prédéfinis : analysez les reçus, les cartes de visite, les factures et d’autres documents avec des modèles prédéfinis pris en charge Utilisez la méthode pour reconnaître les beginRecognizeReceipts informations de reçu.
  3. Analyse de la disposition : extraction et analyse du texte, des marques de sélection, des tableaux et des coordonnées de zone englobante, à partir de formulaires et de documents. Utilisez la beginRecognizeContent méthode tpo effectuer une analyse de disposition.
  4. Interrogation et rappels : il comprend des mécanismes permettant d’interroger le service pour case activée la status d’une opération d’analyse ou d’inscrire des rappels pour recevoir des notifications une fois l’analyse terminée.

Note: Ce client prend uniquement en charge V2_1 et inférieur. Recommandé d’utiliser une version de service plus récente, DocumentAnalysisClient et DocumentModelAdministrationClient.

Reportez-vous au Guide de migration pour utiliser les versions d’API 2022-08-31 et ultérieures.

Les clients de service sont le point d’interaction permettant aux développeurs d’utiliser Azure Form Recognizer. FormRecognizerClient est le client de service synchrone et FormRecognizerAsyncClient est le client de service asynchrone. Les exemples présentés dans ce document utilisent un objet d’informations d’identification nommé DefaultAzureCredential pour l’authentification, ce qui est approprié pour la plupart des scénarios, y compris les environnements de développement et de production locaux. En outre, nous vous recommandons d’utiliser l’identité managée pour l’authentification dans les environnements de production. Vous trouverez plus d’informations sur les différentes méthodes d’authentification et leurs types d’informations d’identification correspondants dans la documentation Azure Identity .

Exemple : Construire un FormRecognizerClient avec DefaultAzureCredential

L’exemple de code suivant illustre la création d’un FormRecognizerAsyncClient, à l’aide de « DefaultAzureCredentialBuilder » pour le configurer.

FormRecognizerAsyncClient formRecognizerAsyncClient = new FormRecognizerClientBuilder()
     .endpoint("{endpoint}")
     .credential(new DefaultAzureCredentialBuilder().build())
     .buildAsyncClient();

En outre, consultez l’exemple de code ci-dessous à utiliser pour la AzureKeyCredential création du client.

FormRecognizerAsyncClient formRecognizerAsyncClient = new FormRecognizerClientBuilder()
     .credential(new AzureKeyCredential("{key}"))
     .endpoint("{endpoint}")
     .buildAsyncClient();

Résumé de la méthode

Modificateur et type Méthode et description
PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeBusinessCards(Flux<ByteBuffer> businessCard, long length)

Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeBusinessCards(Flux<ByteBuffer> businessCard, long length, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions)

Reconnaît les données de carte métier à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’entreprise prédéfini carte entraîné.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeBusinessCardsFromUrl(String businessCardUrl)

Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeBusinessCardsFromUrl(String businessCardUrl, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions)

Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini.

PollerFlux<FormRecognizerOperationResult,List<FormPage>> beginRecognizeContent(Flux<ByteBuffer> form, long length)

Reconnaît les données de contenu/disposition à l’aide de la reconnaissance optique de caractères (OCR).

PollerFlux<FormRecognizerOperationResult,List<FormPage>> beginRecognizeContent(Flux<ByteBuffer> form, long length, RecognizeContentOptions recognizeContentOptions)

Reconnaît les données de contenu/disposition à l’aide de la reconnaissance optique de caractères (OCR).

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

Reconnaît les données de contenu/disposition des documents à l’aide de la reconnaissance optique de caractères (OCR).

PollerFlux<FormRecognizerOperationResult,List<FormPage>> beginRecognizeContentFromUrl(String formUrl, RecognizeContentOptions recognizeContentOptions)

Reconnaît les données de disposition à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeCustomForms(String modelId, Flux<ByteBuffer> form, long length)

Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeCustomForms(String modelId, Flux<ByteBuffer> form, long length, RecognizeCustomFormsOptions recognizeCustomFormsOptions)

Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeCustomFormsFromUrl(String modelId, String formUrl)

Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeCustomFormsFromUrl(String modelId, String formUrl, RecognizeCustomFormsOptions recognizeCustomFormsOptions)

Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeIdentityDocuments(Flux<ByteBuffer> identityDocument, long length)

Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeIdentityDocuments(Flux<ByteBuffer> identityDocument, long length, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions)

Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl)

Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions)

Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeInvoices(Flux<ByteBuffer> invoice, long length)

Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeInvoices(Flux<ByteBuffer> invoice, long length, RecognizeInvoicesOptions recognizeInvoicesOptions)

Reconnaît les données de facture à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.

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

Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeInvoicesFromUrl(String invoiceUrl, RecognizeInvoicesOptions recognizeInvoicesOptions)

Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeReceipts(Flux<ByteBuffer> receipt, long length)

Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeReceipts(Flux<ByteBuffer> receipt, long length, RecognizeReceiptsOptions recognizeReceiptsOptions)

Reconnaît les données de réception des documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage du reçu.

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

Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus.

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeReceiptsOptions recognizeReceiptsOptions)

Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus.

Méthodes héritées de java.lang.Object

Détails de la méthode

beginRecognizeBusinessCards

public PollerFlux<>> beginRecognizeBusinessCards(Flux businessCard, long length)

Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur un carte d’entreprise. Notez que le businessCard passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

businessCard - Les données du document à partir de laquelle reconnaître les informations d’entreprise carte.
length - Longueur exacte des données.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance d’entreprise carte jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeBusinessCards

public PollerFlux<>> beginRecognizeBusinessCards(Flux businessCard, long length, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions)

Reconnaît les données de carte métier à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’entreprise prédéfini carte entraîné.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur un carte d’entreprise. Notez que le businessCard passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

businessCard - Les données du document à partir de laquelle reconnaître les informations d’entreprise carte.
length - Longueur exacte des données.
recognizeBusinessCardsOptions - Configurable supplémentaire RecognizeBusinessCardsOptions qui peut être passé lors de l’analyse d’une carte métier.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance d’entreprise carte jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeBusinessCardsFromUrl

public PollerFlux<>> beginRecognizeBusinessCardsFromUrl(String businessCardUrl)

Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur un carte d’entreprise.

Code sample

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:

businessCardUrl - URL source de l’carte métier d’entrée.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance d’entreprise carte jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeBusinessCardsFromUrl

public PollerFlux<>> beginRecognizeBusinessCardsFromUrl(String businessCardUrl, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions)

Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur un carte d’entreprise.

Code sample

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:

businessCardUrl - URL source de l’carte métier d’entrée.
recognizeBusinessCardsOptions - Configurable supplémentaire RecognizeBusinessCardsOptions qui peut être passé lors de l’analyse d’une carte métier.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance d’entreprise carte jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeContent

public PollerFlux<>> beginRecognizeContent(Flux form, long length)

Reconnaît les données de contenu/disposition à l’aide de la reconnaissance optique de caractères (OCR).

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Notez que le data passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

form - Données du formulaire à partir de laquelle reconnaître les informations de contenu.
length - Longueur exacte des données.

Returns:

Une PollerFlux<T,U> interrogation sur l’opération de reconnaissance de contenu jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de FormPage.

beginRecognizeContent

public PollerFlux<>> beginRecognizeContent(Flux form, long length, RecognizeContentOptions recognizeContentOptions)

Reconnaît les données de contenu/disposition à l’aide de la reconnaissance optique de caractères (OCR).

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Notez que le data passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

La reconnaissance de contenu prend en charge l’identification automatique de la langue et les documents multilingues. Par conséquent, fournissez un code de langue uniquement si vous souhaitez forcer le traitement du document en tant que langue spécifique dans .RecognizeContentOptions

Code sample

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:

form - Données du formulaire à partir de laquelle reconnaître les informations de contenu.
length - Longueur exacte des données.
recognizeContentOptions - Configurable RecognizeContentOptions supplémentaire qui peut être passé lors de la reconnaissance du contenu/de la disposition sur un formulaire.

Returns:

Une PollerFlux<T,U> interrogation sur l’opération de reconnaissance de contenu jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de FormPage.

beginRecognizeContentFromUrl

public PollerFlux<>> beginRecognizeContentFromUrl(String formUrl)

Reconnaît les données de contenu/disposition des documents à l’aide de la reconnaissance optique de caractères (OCR).

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Code sample

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:

formUrl - URL du formulaire à analyser.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance de contenu jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de FormPage.

beginRecognizeContentFromUrl

public PollerFlux<>> beginRecognizeContentFromUrl(String formUrl, RecognizeContentOptions recognizeContentOptions)

Reconnaît les données de disposition à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

La reconnaissance de contenu prend en charge l’identification automatique de la langue et les documents multilingues. Par conséquent, fournissez un code de langue uniquement si vous souhaitez forcer le traitement du document en tant que langue spécifique dans .RecognizeContentOptions

Code sample

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:

formUrl - URL source du formulaire d’entrée.
recognizeContentOptions - Configurable RecognizeContentOptions supplémentaire qui peut être passé lors de la reconnaissance du contenu/de la disposition sur un formulaire.

Returns:

PollerFlux<T,U> qui interroge l’opération de contenu/disposition reconnue jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de FormPage.

beginRecognizeCustomForms

public PollerFlux<>> beginRecognizeCustomForms(String modelId, Flux form, long length)

Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Notez que le data passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

modelId - Id de modèle formé personnalisé au format de chaîne UUID à utiliser.
form - Données du formulaire à partir de laquelle reconnaître les informations de formulaire.
length - Longueur exacte des données.

Returns:

PollerFlux<T,U> qui interroge l’opération de formulaire personnalisé de reconnaissance jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeCustomForms

public PollerFlux<>> beginRecognizeCustomForms(String modelId, Flux form, long length, RecognizeCustomFormsOptions recognizeCustomFormsOptions)

Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Notez que le data passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

modelId - Id de modèle formé personnalisé au format de chaîne UUID à utiliser.
form - Données du formulaire à partir de laquelle reconnaître les informations de formulaire.
length - Longueur exacte des données.
recognizeCustomFormsOptions - Configurable supplémentaire RecognizeCustomFormsOptions qui peut être passé lors de la reconnaissance de formulaires personnalisés.

Returns:

PollerFlux<T,U> qui interroge l’opération de formulaire personnalisé de reconnaissance jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeCustomFormsFromUrl

public PollerFlux<>> beginRecognizeCustomFormsFromUrl(String modelId, String formUrl)

Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Code sample

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:

modelId - Id de modèle formé personnalisé au format de chaîne UUID à utiliser.
formUrl - URL du formulaire à analyser.

Returns:

PollerFlux<T,U> qui interroge l’opération de formulaire personnalisé de reconnaissance jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeCustomFormsFromUrl

public PollerFlux<>> beginRecognizeCustomFormsFromUrl(String modelId, String formUrl, RecognizeCustomFormsOptions recognizeCustomFormsOptions)

Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Code sample

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:

modelId - Id de modèle formé personnalisé au format de chaîne UUID à utiliser.
formUrl - URL source du formulaire d’entrée.
recognizeCustomFormsOptions - Configurable supplémentaire RecognizeCustomFormsOptions qui peut être passé lors de la reconnaissance de formulaires personnalisés.

Returns:

PollerFlux<T,U> qui interroge l’opération de formulaire personnalisé de reconnaissance jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeIdentityDocuments

public PollerFlux<>> beginRecognizeIdentityDocuments(Flux identityDocument, long length)

Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. Consultez ici les champs trouvés dans un document d’identité.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Notez que le identityDocument passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

identityDocument - Données du document à partir de laquelle reconnaître les informations du document d’identité.
length - Longueur exacte des données.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance de document d’identité jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeIdentityDocuments

public PollerFlux<>> beginRecognizeIdentityDocuments(Flux identityDocument, long length, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions)

Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. Consultez ici les champs trouvés dans un document d’identité.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Notez que le identityDocument passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

identityDocument - Données du document à partir de laquelle reconnaître les informations du document d’identité.
length - Longueur exacte des données.
recognizeIdentityDocumentOptions - Configurable RecognizeIdentityDocumentOptions supplémentaire qui peut être passé lors de l’analyse d’un document d’identité.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance de document d’identité jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeIdentityDocumentsFromUrl

public PollerFlux<>> beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl)

Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. Consultez ici les champs trouvés dans un document d’identité.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Code sample

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:

identityDocumentUrl - URL source du document d’identité d’entrée.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance de document d’identité jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeIdentityDocumentsFromUrl

public PollerFlux<>> beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions)

Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. Consultez ici les champs trouvés dans un document d’identité.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Code sample

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:

identityDocumentUrl - URL source du document d’identité d’entrée.
recognizeIdentityDocumentOptions - Configurable RecognizeIdentityDocumentOptions supplémentaire qui peut être passé lors de l’analyse d’un document d’identité.

Returns:

PollerFlux<T,U> qui interroge l’opération d’analyse du document d’identité jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeInvoices

public PollerFlux<>> beginRecognizeInvoices(Flux invoice, long length)

Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur une facture. Notez que le invoice passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

invoice - Données du document à partir de laquelle reconnaître les informations de facture.
length - Longueur exacte des données.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance de facture jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeInvoices

public PollerFlux<>> beginRecognizeInvoices(Flux invoice, long length, RecognizeInvoicesOptions recognizeInvoicesOptions)

Reconnaît les données de facture à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur une facture. Notez que le invoice passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

invoice - Données du document à partir de laquelle reconnaître les informations de facture.
length - Longueur exacte des données.
recognizeInvoicesOptions - Configurable RecognizeInvoicesOptions supplémentaire qui peut être passé lors de l’analyse d’une facture.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance de facture jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeInvoicesFromUrl

public PollerFlux<>> beginRecognizeInvoicesFromUrl(String invoiceUrl)

Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur une facture.

Code sample

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:

invoiceUrl - URL de la facture à analyser.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance de facture jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeInvoicesFromUrl

public PollerFlux<>> beginRecognizeInvoicesFromUrl(String invoiceUrl, RecognizeInvoicesOptions recognizeInvoicesOptions)

Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Code sample

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:

invoiceUrl - URL source de la facture d’entrée.
recognizeInvoicesOptions - Configurable RecognizeInvoicesOptions supplémentaire qui peut être passé lors de l’analyse d’une facture.

Returns:

PollerFlux<T,U> qui interroge l’opération de reconnaissance de facture jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeReceipts

public PollerFlux<>> beginRecognizeReceipts(Flux receipt, long length)

Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur un reçu. Notez que le receipt passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

receipt - Données du document à partir de laquelle reconnaître les informations de réception.
length - Longueur exacte des données.

Returns:

PollerFlux<T,U> qui interroge l’opération de accusé de réception jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeReceipts

public PollerFlux<>> beginRecognizeReceipts(Flux receipt, long length, RecognizeReceiptsOptions recognizeReceiptsOptions)

Reconnaît les données de réception des documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage du reçu.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur un reçu. Notez que le receipt passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux doit produire les mêmes données chaque fois qu’il est abonné.

Code sample

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:

receipt - Données du document à partir de laquelle reconnaître les informations de réception.
length - Longueur exacte des données.
recognizeReceiptsOptions - Configurable RecognizeReceiptsOptions supplémentaire qui peut être passé lors de l’analyse d’un reçu.

Returns:

PollerFlux<T,U> qui interroge l’opération de accusé de réception jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeReceiptsFromUrl

public PollerFlux<>> beginRecognizeReceiptsFromUrl(String receiptUrl)

Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Consultez ici les champs trouvés sur un reçu.

Code sample

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:

receiptUrl - URL du reçu à analyser.

Returns:

PollerFlux<T,U> qui interroge l’opération de accusé de réception jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

beginRecognizeReceiptsFromUrl

public PollerFlux<>> beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeReceiptsOptions recognizeReceiptsOptions)

Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus.

Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.

Code sample

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:

receiptUrl - URL source du reçu d’entrée.
recognizeReceiptsOptions - Configurable RecognizeReceiptsOptions supplémentaire qui peut être passé lors de l’analyse d’un reçu.

Returns:

PollerFlux<T,U> qui interroge l’opération de accusé de réception jusqu’à ce qu’elle soit terminée, qu’elle ait échoué ou qu’elle ait été annulée. L’opération terminée retourne une liste de RecognizedForm.

S’applique à