Share via


FormRecognizerAsyncClient Classe

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

public final class FormRecognizerAsyncClient

Essa classe fornece um cliente assíncrono para se conectar ao Reconhecimento de Formulários Serviço Cognitivo do Azure.

Esse cliente fornece métodos assíncronos para executar:

  1. Análise de Formulário Personalizada: extração e análise de dados de formulários e documentos específicos para dados comerciais distintos e casos de uso. Use o modelo treinado personalizado passando sua modelId para o beginRecognizeCustomForms método .
  2. Análise de Modelo Predefinida: analise recibos, cartões de visita, faturas e outros documentos com modelos predefinidos com suporte Use o beginRecognizeReceipts método para reconhecer informações de recibo.
  3. Análise de Layout: extração e análise de texto, marcas de seleção, tabelas e coordenadas de caixa delimitadora, de formulários e documentos. Use beginRecognizeContent o método tpo para executar a análise de layout.
  4. Sondagem e retornos de chamada: inclui mecanismos para sondar o serviço para marcar o status de uma operação de análise ou registrar retornos de chamada para receber notificações quando a análise for concluída.

Nota: Esse cliente só dá V2_1 suporte a e inferior. É recomendável usar uma versão DocumentAnalysisClient de serviço mais recente e DocumentModelAdministrationClient.

Consulte o Guia de migração para usar as versões de API 2022-08-31 e posteriores.

Os clientes de serviço são o ponto de interação para que os desenvolvedores usem o Azure Reconhecimento de Formulários. FormRecognizerClient é o cliente de serviço síncrono e FormRecognizerAsyncClient é o cliente de serviço assíncrono. Os exemplos mostrados neste documento usam um objeto de credencial chamado DefaultAzureCredential para autenticação, que é apropriado para a maioria dos cenários, incluindo ambientes locais de desenvolvimento e produção. Além disso, é recomendável usar a identidade gerenciada para autenticação em ambientes de produção. Você pode encontrar mais informações sobre diferentes maneiras de autenticação e seus tipos de credenciais correspondentes na documentação da Identidade do Azure".

Exemplo: Construir um FormRecognizerClient com DefaultAzureCredential

O exemplo de código a seguir demonstra a criação de um FormRecognizerAsyncClient, usando o 'DefaultAzureCredentialBuilder' para configurá-lo.

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

Além disso, consulte o exemplo de código a ser usado AzureKeyCredential para a criação do cliente.

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

Resumo do método

Modificador e tipo Método e descrição
PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeBusinessCards(Flux<ByteBuffer> businessCard, long length)

Reconhece dados de cartão de negócios usando o OCR (reconhecimento óptico de caracteres) e um modelo de negócios predefinido cartão treinado.

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

Reconhece dados de cartão de negócios de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo de negócios predefinido cartão treinado.

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

Reconhece dados de cartão de negócios usando o OCR (reconhecimento óptico de caracteres) e um modelo de negócios predefinido cartão treinado.

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

Reconhece dados de cartão de negócios usando o OCR (reconhecimento óptico de caracteres) e um modelo de negócios predefinido cartão treinado.

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

Reconhece dados de conteúdo/layout usando o OCR (reconhecimento óptico de caracteres).

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

Reconhece dados de conteúdo/layout usando o OCR (reconhecimento óptico de caracteres).

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

Reconhece dados de conteúdo/layout de documentos usando o OCR (reconhecimento óptico de caracteres).

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

Reconhece dados de layout de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado.

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

Reconhece dados de formulário de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado com ou sem rótulos.

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

Reconhece dados de formulário de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado com ou sem rótulos.

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

Reconhece dados de formulário de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado com ou sem rótulos.

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

Reconhece dados de formulário de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado.

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

Analise documentos de identidade usando o OCR (reconhecimento óptico de caracteres) e um modelo predefinido treinado no modelo de documentos de identidade para extrair informações importantes de passaportes e carteiras de motorista dos EUA.

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

Analise documentos de identidade usando o OCR (reconhecimento óptico de caracteres) e um modelo predefinido treinado no modelo de documentos de identidade para extrair informações importantes de passaportes e carteiras de motorista dos EUA.

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

Analise documentos de identidade usando o OCR (reconhecimento óptico de caracteres) e um modelo predefinido treinado no modelo de documentos de identidade para extrair informações importantes de passaportes e carteiras de motorista dos EUA.

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

Analise documentos de identidade usando o OCR (reconhecimento óptico de caracteres) e um modelo predefinido treinado no modelo de documentos de identidade para extrair informações importantes de passaportes e carteiras de motorista dos EUA.

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

Reconhece dados da fatura usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de fatura predefinido.

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

Reconhece dados de fatura de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de fatura predefinido.

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

Reconhece dados da fatura usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de fatura predefinido.

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

Reconhece dados da fatura usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de fatura predefinido.

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

Reconhece dados de recibo usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de recibo predefinido.

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

Reconhece dados de recibo de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de recibo predefinido.

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

Reconhece dados de recibo usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de recibo predefinido.

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

Reconhece dados de recibo usando o OCR (reconhecimento óptico de caracteres) e um modelo pré-criado treinado para recibos.

Métodos herdados de java.lang.Object

Detalhes do método

beginRecognizeBusinessCards

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

Reconhece dados de cartão de negócios usando o OCR (reconhecimento óptico de caracteres) e um modelo de negócios predefinido cartão treinado.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Veja aqui os campos encontrados em um cartão de negócios. Observe que o businessCard passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - Os dados do documento do qual reconhecer informações de cartão de negócios.
length - O comprimento exato dos dados.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de cartão de negócios até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeBusinessCards

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

Reconhece dados de cartão de negócios de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo de negócios predefinido cartão treinado.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Veja aqui os campos encontrados em um cartão de negócios. Observe que o businessCard passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - Os dados do documento do qual reconhecer informações de cartão de negócios.
length - O comprimento exato dos dados.
recognizeBusinessCardsOptions - O configurável RecognizeBusinessCardsOptions adicional que pode ser passado ao analisar um cartão de negócios.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de cartão de negócios até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeBusinessCardsFromUrl

public PollerFlux<>> beginRecognizeBusinessCardsFromUrl(String businessCardUrl)

Reconhece dados de cartão de negócios usando o OCR (reconhecimento óptico de caracteres) e um modelo de negócios predefinido cartão treinado.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Veja aqui os campos encontrados em um cartão de negócios.

Exemplo de código

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 - A URL de origem para a cartão comercial de entrada.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de cartão de negócios até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeBusinessCardsFromUrl

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

Reconhece dados de cartão de negócios usando o OCR (reconhecimento óptico de caracteres) e um modelo de negócios predefinido cartão treinado.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Veja aqui os campos encontrados em um cartão de negócios.

Exemplo de código

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 - A URL de origem para a cartão comercial de entrada.
recognizeBusinessCardsOptions - O configurável RecognizeBusinessCardsOptions adicional que pode ser passado ao analisar um cartão de negócios.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de cartão de negócios até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeContent

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

Reconhece dados de conteúdo/layout usando o OCR (reconhecimento óptico de caracteres).

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Observe que o data passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - Os dados do formulário do qual reconhecer informações de conteúdo.
length - O comprimento exato dos dados.

Returns:

Um PollerFlux<T,U> sonda a operação de reconhecimento de conteúdo até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de FormPage.

beginRecognizeContent

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

Reconhece dados de conteúdo/layout usando o OCR (reconhecimento óptico de caracteres).

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Observe que o data passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

O reconhecimento de conteúdo dá suporte à identificação automática de idioma e a documentos multilanguage, portanto, forneça apenas um código de idioma se você quiser forçar o documentado a ser processado como esse idioma específico no RecognizeContentOptions.

Exemplo de código

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 - Os dados do formulário do qual reconhecer informações de conteúdo.
length - O comprimento exato dos dados.
recognizeContentOptions - O configurável RecognizeContentOptions adicional que pode ser passado ao reconhecer conteúdo/layout em um formulário.

Returns:

Um PollerFlux<T,U> sonda a operação de reconhecimento de conteúdo até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de FormPage.

beginRecognizeContentFromUrl

public PollerFlux<>> beginRecognizeContentFromUrl(String formUrl)

Reconhece dados de conteúdo/layout de documentos usando o OCR (reconhecimento óptico de caracteres).

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Exemplo de código

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 - A URL do formulário a ser analisado.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de conteúdo até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de FormPage.

beginRecognizeContentFromUrl

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

Reconhece dados de layout de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

O reconhecimento de conteúdo dá suporte à identificação automática de idioma e a documentos multilanguage, portanto, forneça apenas um código de idioma se você quiser forçar o documentado a ser processado como esse idioma específico no RecognizeContentOptions.

Exemplo de código

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 - A URL de origem para o formulário de entrada.
recognizeContentOptions - O configurável RecognizeContentOptions adicional que pode ser passado ao reconhecer conteúdo/layout em um formulário.

Returns:

Um PollerFlux<T,U> que sonda a operação de conteúdo/layout reconhecida até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de FormPage.

beginRecognizeCustomForms

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

Reconhece dados de formulário de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado com ou sem rótulos.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Observe que o data passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - A ID do modelo treinado personalizado de formato de cadeia de caracteres UUID a ser usada.
form - Os dados do formulário do qual reconhecer informações de formulário.
length - O comprimento exato dos dados.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de formulário personalizado até que ela tenha sido concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeCustomForms

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

Reconhece dados de formulário de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado com ou sem rótulos.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Observe que o data passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - A ID do modelo treinado personalizado de formato de cadeia de caracteres UUID a ser usada.
form - Os dados do formulário do qual reconhecer informações de formulário.
length - O comprimento exato dos dados.
recognizeCustomFormsOptions - O configurável RecognizeCustomFormsOptions adicional que pode ser passado ao reconhecer formulários personalizados.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de formulário personalizado até que ela tenha sido concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeCustomFormsFromUrl

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

Reconhece dados de formulário de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado com ou sem rótulos.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Exemplo de código

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 - A ID do modelo treinado personalizado de formato de cadeia de caracteres UUID a ser usada.
formUrl - A URL do formulário a ser analisado.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de formulário personalizado até que ela tenha sido concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeCustomFormsFromUrl

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

Reconhece dados de formulário de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado personalizado.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Exemplo de código

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 - A ID do modelo treinado personalizado de formato de cadeia de caracteres UUID a ser usada.
formUrl - A URL de origem para o formulário de entrada.
recognizeCustomFormsOptions - O configurável RecognizeCustomFormsOptions adicional que pode ser passado ao reconhecer formulários personalizados.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de formulário personalizado até que ela tenha sido concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeIdentityDocuments

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

Analise documentos de identidade usando o OCR (reconhecimento óptico de caracteres) e um modelo predefinido treinado no modelo de documentos de identidade para extrair informações importantes de passaportes e carteiras de motorista dos EUA. Confira aqui os campos encontrados em um documento de identidade.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Observe que o identityDocument passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - Os dados do documento do qual reconhecer informações do documento de identidade.
length - O comprimento exato dos dados.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de documento de identidade até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeIdentityDocuments

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

Analise documentos de identidade usando o OCR (reconhecimento óptico de caracteres) e um modelo predefinido treinado no modelo de documentos de identidade para extrair informações importantes de passaportes e carteiras de motorista dos EUA. Confira aqui os campos encontrados em um documento de identidade.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Observe que o identityDocument passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - Os dados do documento do qual reconhecer informações do documento de identidade.
length - O comprimento exato dos dados.
recognizeIdentityDocumentOptions - O configurável RecognizeIdentityDocumentOptions adicional que pode ser passado ao analisar um documento de identidade.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de documento de identidade até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeIdentityDocumentsFromUrl

public PollerFlux<>> beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl)

Analise documentos de identidade usando o OCR (reconhecimento óptico de caracteres) e um modelo predefinido treinado no modelo de documentos de identidade para extrair informações importantes de passaportes e carteiras de motorista dos EUA. Confira aqui os campos encontrados em um documento de identidade.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Exemplo de código

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 - A URL de origem para o documento de identidade de entrada.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de documento de identidade até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeIdentityDocumentsFromUrl

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

Analise documentos de identidade usando o OCR (reconhecimento óptico de caracteres) e um modelo predefinido treinado no modelo de documentos de identidade para extrair informações importantes de passaportes e carteiras de motorista dos EUA. Confira aqui os campos encontrados em um documento de identidade.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Exemplo de código

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 - A URL de origem para o documento de identidade de entrada.
recognizeIdentityDocumentOptions - O configurável RecognizeIdentityDocumentOptions adicional que pode ser passado ao analisar um documento de identidade.

Returns:

Um PollerFlux<T,U> que sonda a operação analisar documento de identidade até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeInvoices

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

Reconhece dados da fatura usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de fatura predefinido.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Confira aqui os campos encontrados em uma fatura. Observe que o invoice passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - Os dados do documento do qual reconhecer as informações da fatura.
length - O comprimento exato dos dados.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de fatura até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeInvoices

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

Reconhece dados de fatura de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de fatura predefinido.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Confira aqui os campos encontrados em uma fatura. Observe que o invoice passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - Os dados do documento do qual reconhecer as informações da fatura.
length - O comprimento exato dos dados.
recognizeInvoicesOptions - O configurável RecognizeInvoicesOptions adicional que pode ser passado ao analisar uma fatura.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de fatura até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeInvoicesFromUrl

public PollerFlux<>> beginRecognizeInvoicesFromUrl(String invoiceUrl)

Reconhece dados da fatura usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de fatura predefinido.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Confira aqui os campos encontrados em uma fatura.

Exemplo de código

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 - A URL da fatura a ser analisada.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de fatura até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeInvoicesFromUrl

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

Reconhece dados da fatura usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de fatura predefinido.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Exemplo de código

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 - A URL de origem para a fatura de entrada.
recognizeInvoicesOptions - O configurável RecognizeInvoicesOptions adicional que pode ser passado ao analisar uma fatura.

Returns:

Um PollerFlux<T,U> que sonda a operação de reconhecimento de fatura até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeReceipts

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

Reconhece dados de recibo usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de recibo predefinido.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Veja aqui os campos encontrados em um recibo. Observe que o receipt passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - Os dados do documento do qual reconhecer informações de recibo.
length - O comprimento exato dos dados.

Returns:

Um PollerFlux<T,U> que sonda a operação de confirmação de reconhecimento até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeReceipts

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

Reconhece dados de recibo de documentos usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de recibo predefinido.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Veja aqui os campos encontrados em um recibo. Observe que o receipt passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.

Exemplo de código

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 - Os dados do documento do qual reconhecer informações de recibo.
length - O comprimento exato dos dados.
recognizeReceiptsOptions - O configurável RecognizeReceiptsOptions adicional que pode ser passado ao analisar um recibo.

Returns:

Um PollerFlux<T,U> que sonda a operação de confirmação de reconhecimento até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeReceiptsFromUrl

public PollerFlux<>> beginRecognizeReceiptsFromUrl(String receiptUrl)

Reconhece dados de recibo usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de recibo predefinido.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Veja aqui os campos encontrados em um recibo.

Exemplo de código

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 - A URL do recibo a ser analisado.

Returns:

Um PollerFlux<T,U> que sonda a operação de confirmação de reconhecimento até que ela seja concluída, tenha falhado ou tenha sido cancelada. A operação concluída retorna uma lista de RecognizedForm.

beginRecognizeReceiptsFromUrl

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

Reconhece dados de recibo usando o OCR (reconhecimento óptico de caracteres) e um modelo treinado de recibo predefinido.

O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.

Exemplo de código

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 - A URL de origem para o recibo de entrada.
recognizeReceiptsOptions - O configurável RecognizeReceiptsOptions adicional que pode ser passado ao analisar um recibo.

Returns:

Um PollerFlux<T,U> que sonda a operação de confirmação de reconhecimento até que tenha sido concluída, falhou ou foi cancelada. A operação concluída retorna uma lista de RecognizedForm.

Aplica-se a