FormRecognizerClient Clase

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

public final class FormRecognizerClient

Esta clase proporciona un cliente sincrónico para conectarse a la Form Recognizer Azure Cognitive Service.

Este cliente proporciona métodos sincrónicos para realizar:

  1. Análisis de formulario personalizado: extracción y análisis de datos de formularios y documentos específicos de distintos datos empresariales y casos de uso. Use el modelo entrenado personalizado pasando su modelId al beginRecognizeCustomForms método .
  2. Análisis de modelos precompilado: analice recibos, tarjetas de presentación, facturas y otros documentos con modelos precompilados compatibles Use el método para reconocer la beginRecognizeReceipts información de recibo.
  3. Análisis de diseño: extracción y análisis de texto, marcas de selección, tablas y coordenadas de cuadro de límite, de formularios y documentos. Use beginRecognizeContent(InputStream form, long length) el método tpo para realizar el análisis de diseño.
  4. Sondeo y devoluciones de llamada: incluye mecanismos para sondear el servicio para comprobar el estado de una operación de análisis o registrar devoluciones de llamada para recibir notificaciones cuando se complete el análisis.

Consulte la guía de migración para usar las versiones de API 2022-08-31 y versiones posteriores.

Los clientes de servicio son el punto de interacción para que los desarrolladores usen Azure Form Recognizer. FormRecognizerClient es el cliente de servicio sincrónico y FormRecognizerAsyncClient es el cliente de servicio asincrónico. Los ejemplos que se muestran en este documento usan un objeto de credencial denominado DefaultAzureCredential para la autenticación, que es adecuado para la mayoría de los escenarios, incluidos los entornos de desarrollo y producción locales. Además, se recomienda usar la identidad administrada para la autenticación en entornos de producción. Puede encontrar más información sobre las distintas formas de autenticación y sus tipos de credenciales correspondientes en la documentación de Identidad de Azure".

Ejemplo: Construcción de un formRecognizerClient con DefaultAzureCredential

En el ejemplo de código siguiente se muestra la creación de un FormRecognizerClient, con "DefaultAzureCredentialBuilder" para configurarlo.

FormRecognizerClient formRecognizerClient = new FormRecognizerClientBuilder()
     .endpoint("{endpoint}")
     .credential(new DefaultAzureCredentialBuilder().build())
     .buildClient();

Además, consulte el ejemplo de código siguiente para usarlo AzureKeyCredential para la creación de clientes.

FormRecognizerClient formRecognizerClient = new FormRecognizerClientBuilder()
     .credential(new AzureKeyCredential("{key}"))
     .endpoint("{endpoint}")
     .buildClient();

Resumen del método

Modificador y tipo Método y descripción
SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeBusinessCards(InputStream businessCard, long length)

Reconoce los datos de tarjetas de presentación de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de tarjeta de presentación entrenado previamente.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeBusinessCards(InputStream businessCard, long length, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions, Context context)

Reconoce los datos de tarjetas de presentación de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de tarjeta de presentación entrenado previamente.

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

Reconoce los datos de tarjetas de presentación del documento mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado con tarjeta de presentación precompilada.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeBusinessCardsFromUrl(String businessCardUrl, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions, Context context)

Reconoce datos de tarjetas de presentación de documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado con tarjeta de presentación precompilada.

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

Reconoce los datos de diseño mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado.

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

Reconoce los datos de contenido o diseño de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR).

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

Reconoce datos de contenido o diseño de documentos mediante el reconocimiento óptico de caracteres (OCR).

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

Reconoce los datos de contenido y diseño mediante el reconocimiento óptico de caracteres (OCR).

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeCustomForms(String modelId, InputStream form, long length)

Reconoce datos de formulario de documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado con o sin etiquetas.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeCustomForms(String modelId, InputStream form, long length, RecognizeCustomFormsOptions recognizeCustomFormsOptions, Context context)

Reconoce los datos de formulario de los documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado.

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

Reconoce datos de formulario de documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado con o sin etiquetas.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeCustomFormsFromUrl(String modelId, String formUrl, RecognizeCustomFormsOptions recognizeCustomFormsOptions, Context context)

Reconoce los datos de formulario de los documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeIdentityDocuments(InputStream identityDocument, long length)

Analice los documentos de identidad mediante el reconocimiento óptico de caracteres (OCR) y un modelo precompilado entrenado en el modelo de documentos de identidad para extraer información clave de pasaportes y licencias de conducir de EE. UU.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeIdentityDocuments(InputStream identityDocument, long length, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions, Context context)

Analice los documentos de identidad mediante el reconocimiento óptico de caracteres (OCR) y un modelo precompilado entrenado en el modelo de documentos de identidad para extraer información clave de pasaportes y licencias de conducir de EE. UU.

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

Analice documentos de identidad mediante el reconocimiento óptico de caracteres (OCR) y un modelo precompilado entrenado en el modelo de documentos de identidad para extraer información clave de pasaportes y licencias de conducir de EE. UU.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions, Context context)

Analice documentos de identidad mediante el reconocimiento óptico de caracteres (OCR) y un modelo precompilado entrenado en el modelo de documentos de identidad para extraer información clave de pasaportes y licencias de conducir de EE. UU.

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

Reconoce los datos de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de factura entrenado previamente.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeInvoices(InputStream invoice, long length, RecognizeInvoicesOptions recognizeInvoicesOptions, Context context)

Reconoce los datos de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de factura entrenado previamente.

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

Reconoce los datos de factura del documento mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado previamente de factura.

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

Reconoce los datos de factura de los documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado previamente de factura.

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

Reconoce los datos de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de recibo entrenado previamente.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeReceipts(InputStream receipt, long length, RecognizeReceiptsOptions recognizeReceiptsOptions, Context context)

Reconoce los datos de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de recibo entrenado previamente.

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

Reconoce los datos de recepción del documento mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado de recibo precompilado.

SyncPoller<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeReceiptsOptions recognizeReceiptsOptions, Context context)

Reconoce los datos de recepción de documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado de recibo precompilado.

Métodos heredados de java.lang.Object

Detalles del método

beginRecognizeBusinessCards

public SyncPoller<>> beginRecognizeBusinessCards(InputStream businessCard, long length)

Reconoce los datos de tarjetas de presentación de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de tarjeta de presentación entrenado previamente.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de soporte técnico de cancelación.

Consulte aquí los campos que se encuentran en una tarjeta de presentación.

Código de ejemplo

File businessCard = new File("{local/file_path/fileName.jpg}");
 byte[] fileContent = Files.readAllBytes(businessCard.toPath());
 try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
     formRecognizerClient.beginRecognizeBusinessCards(targetStream, businessCard.length()).getFinalResult()
         .forEach(recognizedBusinessCard -> {
             Map<String, FormField> recognizedFields = recognizedBusinessCard.getFields();
             FormField contactNamesFormField = recognizedFields.get("ContactNames");
             if (contactNamesFormField != null) {
                 if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
                     List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
                     contactNamesList.stream()
                         .filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
                         .map(contactName -> {
                             System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
                             return contactName.getValue().asMap();
                         })
                         .forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
                             if ("FirstName".equals(key)) {
                                 if (FieldValueType.STRING == contactName.getValue().getValueType()) {
                                     String firstName = contactName.getValue().asString();
                                     System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
                                         firstName, contactName.getConfidence());
                                 }
                             }
                             if ("LastName".equals(key)) {
                                 if (FieldValueType.STRING == contactName.getValue().getValueType()) {
                                     String lastName = contactName.getValue().asString();
                                     System.out.printf("\tLast Name: %s, confidence: %.2f%n",
                                         lastName, contactName.getConfidence());
                                 }
                             }
                         }));
                 }
             }
             FormField jobTitles = recognizedFields.get("JobTitles");
             if (jobTitles != null) {
                 if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
                     List<FormField> jobTitlesItems = jobTitles.getValue().asList();
                     jobTitlesItems.forEach(jobTitlesItem -> {
                         if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
                             String jobTitle = jobTitlesItem.getValue().asString();
                             System.out.printf("Job Title: %s, confidence: %.2f%n",
                                 jobTitle, jobTitlesItem.getConfidence());
                         }
                     });
                 }
             }
         });
 }

Parameters:

businessCard - Datos de la tarjeta de presentación de la que se va a reconocer la información de la tarjeta de presentación.
length - Longitud exacta de los datos.

Returns:

Que SyncPoller<T,U> sondea la operación reconocer tarjeta de presentación hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeBusinessCards

public SyncPoller<>> beginRecognizeBusinessCards(InputStream businessCard, long length, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions, Context context)

Reconoce los datos de tarjetas de presentación de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de tarjeta de presentación entrenado previamente.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de soporte técnico de cancelación.

Consulte aquí los campos que se encuentran en una tarjeta de presentación.

Código de ejemplo

File businessCard = new File("{local/file_path/fileName.jpg}");
 boolean includeFieldElements = true;
 byte[] fileContent = Files.readAllBytes(businessCard.toPath());
 try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
     for (RecognizedForm recognizedForm : formRecognizerClient.beginRecognizeBusinessCards(targetStream,
         businessCard.length(),
         new RecognizeBusinessCardsOptions()
             .setContentType(FormContentType.IMAGE_JPEG)
             .setFieldElementsIncluded(includeFieldElements),
         Context.NONE).setPollInterval(Duration.ofSeconds(5))
         .getFinalResult()) {
         Map<String, FormField> recognizedFields = recognizedForm.getFields();
         FormField contactNamesFormField = recognizedFields.get("ContactNames");
         if (contactNamesFormField != null) {
             if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
                 List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
                 contactNamesList.stream()
                     .filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
                     .map(contactName -> {
                         System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
                         return contactName.getValue().asMap();
                     })
                     .forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
                         if ("FirstName".equals(key)) {
                             if (FieldValueType.STRING == contactName.getValue().getValueType()) {
                                 String firstName = contactName.getValue().asString();
                                 System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
                                     firstName, contactName.getConfidence());
                             }
                         }
                         if ("LastName".equals(key)) {
                             if (FieldValueType.STRING == contactName.getValue().getValueType()) {
                                 String lastName = contactName.getValue().asString();
                                 System.out.printf("\tLast Name: %s, confidence: %.2f%n",
                                     lastName, contactName.getConfidence());
                             }
                         }
                     }));
             }
         }
         FormField jobTitles = recognizedFields.get("JobTitles");
         if (jobTitles != null) {
             if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
                 List<FormField> jobTitlesItems = jobTitles.getValue().asList();
                 jobTitlesItems.forEach(jobTitlesItem -> {
                     if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
                         String jobTitle = jobTitlesItem.getValue().asString();
                         System.out.printf("Job Title: %s, confidence: %.2f%n",
                             jobTitle, jobTitlesItem.getConfidence());
                     }
                 });
             }
         }
     }
 }

Parameters:

businessCard - Datos de la tarjeta de presentación de la que se va a reconocer la información de la tarjeta de presentación.
length - Longitud exacta de los datos.
recognizeBusinessCardsOptions - Configurable adicional RecognizeBusinessCardsOptions que se puede pasar al analizar una tarjeta de presentación.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

Que SyncPoller<T,U> sondea la operación reconocer tarjeta de presentación hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeBusinessCardsFromUrl

public SyncPoller<>> beginRecognizeBusinessCardsFromUrl(String businessCardUrl)

Reconoce los datos de tarjetas de presentación del documento mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado con tarjeta de presentación precompilada.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de soporte técnico de cancelación.

Consulte aquí los campos que se encuentran en una tarjeta de presentación.

Código de ejemplo

String businessCardUrl = "{business_card_url}";
 formRecognizerClient.beginRecognizeBusinessCardsFromUrl(businessCardUrl)
     .getFinalResult()
     .forEach(recognizedBusinessCard -> {
         Map<String, FormField> recognizedFields = recognizedBusinessCard.getFields();
         FormField contactNamesFormField = recognizedFields.get("ContactNames");
         if (contactNamesFormField != null) {
             if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
                 List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
                 contactNamesList.stream()
                     .filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
                     .map(contactName -> {
                         System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
                         return contactName.getValue().asMap();
                     })
                     .forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
                         if ("FirstName".equals(key)) {
                             if (FieldValueType.STRING == contactName.getValue().getValueType()) {
                                 String firstName = contactName.getValue().asString();
                                 System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
                                     firstName, contactName.getConfidence());
                             }
                         }
                         if ("LastName".equals(key)) {
                             if (FieldValueType.STRING == contactName.getValue().getValueType()) {
                                 String lastName = contactName.getValue().asString();
                                 System.out.printf("\tLast Name: %s, confidence: %.2f%n",
                                     lastName, contactName.getConfidence());
                             }
                         }
                     }));
             }
         }
         FormField jobTitles = recognizedFields.get("JobTitles");
         if (jobTitles != null) {
             if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
                 List<FormField> jobTitlesItems = jobTitles.getValue().asList();
                 jobTitlesItems.forEach(jobTitlesItem -> {
                     if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
                         String jobTitle = jobTitlesItem.getValue().asString();
                         System.out.printf("Job Title: %s, confidence: %.2f%n",
                             jobTitle, jobTitlesItem.getConfidence());
                     }
                 });
             }
         }
     });

Parameters:

businessCardUrl - Dirección URL de origen de la tarjeta de presentación de entrada.

Returns:

Para SyncPoller<T,U> sondear el progreso de la operación reconocer tarjeta de presentación hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeBusinessCardsFromUrl

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

Reconoce datos de tarjetas de presentación de documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado con tarjeta de presentación precompilada.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de soporte técnico de cancelación.

Consulte aquí los campos que se encuentran en una tarjeta de presentación.

Código de ejemplo

String businessCardUrl = "{business_card_url}";
 formRecognizerClient.beginRecognizeBusinessCardsFromUrl(businessCardUrl,
     new RecognizeBusinessCardsOptions()
         .setFieldElementsIncluded(true), Context.NONE)
     .setPollInterval(Duration.ofSeconds(5)).getFinalResult()
     .forEach(recognizedBusinessCard -> {
         Map<String, FormField> recognizedFields = recognizedBusinessCard.getFields();
         FormField contactNamesFormField = recognizedFields.get("ContactNames");
         if (contactNamesFormField != null) {
             if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
                 List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
                 contactNamesList.stream()
                     .filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
                     .map(contactName -> {
                         System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
                         return contactName.getValue().asMap();
                     })
                     .forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
                         if ("FirstName".equals(key)) {
                             if (FieldValueType.STRING == contactName.getValue().getValueType()) {
                                 String firstName = contactName.getValue().asString();
                                 System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
                                     firstName, contactName.getConfidence());
                             }
                         }
                         if ("LastName".equals(key)) {
                             if (FieldValueType.STRING == contactName.getValue().getValueType()) {
                                 String lastName = contactName.getValue().asString();
                                 System.out.printf("\tLast Name: %s, confidence: %.2f%n",
                                     lastName, contactName.getConfidence());
                             }
                         }
                     }));
             }
         }
         FormField jobTitles = recognizedFields.get("JobTitles");
         if (jobTitles != null) {
             if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
                 List<FormField> jobTitlesItems = jobTitles.getValue().asList();
                 jobTitlesItems.forEach(jobTitlesItem -> {
                     if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
                         String jobTitle = jobTitlesItem.getValue().asString();
                         System.out.printf("Job Title: %s, confidence: %.2f%n",
                             jobTitle, jobTitlesItem.getConfidence());
                     }
                 });
             }
         }
     });

Parameters:

businessCardUrl - Dirección URL de origen de la tarjeta de presentación de entrada.
recognizeBusinessCardsOptions - Configurable adicional RecognizeBusinessCardsOptions que se puede pasar al analizar una tarjeta de presentación.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

Para SyncPoller<T,U> sondear el progreso de la operación reconocer tarjeta de presentación hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeContent

public SyncPoller<>> beginRecognizeContent(InputStream form, long length)

Reconoce los datos de diseño mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Código de ejemplo

File form = new File("{local/file_path/fileName.pdf}");
 byte[] fileContent = Files.readAllBytes(form.toPath());
 try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
     formRecognizerClient.beginRecognizeContent(targetStream, form.length())
         .getFinalResult()
         .forEach(formPage -> {
             System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
             System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
             // Table information
             System.out.println("Recognized Tables: ");
             formPage.getTables()
                 .stream()
                 .flatMap(formTable -> formTable.getCells().stream())
                 .forEach(recognizedTableCell -> System.out.printf("%s ", recognizedTableCell.getText()));
         });
 }

Parameters:

form - Datos del formulario de los que se va a reconocer la información de contenido.
length - Longitud exacta de los datos.

Returns:

que SyncPoller<T,U> sondea la operación de reconocimiento de contenido hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de FormPage.

beginRecognizeContent

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

Reconoce los datos de contenido o diseño de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR).

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de soporte técnico de cancelación.

El reconocimiento de contenido admite la identificación automática del idioma y los documentos de varias idiomas, por lo que solo debe proporcionar un código de idioma si desea forzar que el documento se procese como ese idioma específico en RecognizeContentOptions.

Código de ejemplo

File form = new File("{file_source_url}");
 byte[] fileContent = Files.readAllBytes(form.toPath());
 try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {

     for (FormPage formPage : formRecognizerClient.beginRecognizeContent(targetStream, form.length(),
         new RecognizeContentOptions()
             .setPollInterval(Duration.ofSeconds(5)), Context.NONE)
         .getFinalResult()) {
         System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
         System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
         // Table information
         System.out.println("Recognized Tables: ");
         formPage.getTables()
             .stream()
             .flatMap(formTable -> formTable.getCells().stream())
             .forEach(recognizedTableCell -> System.out.printf("%s ", recognizedTableCell.getText()));
     }
 }

Parameters:

form - Datos del formulario de los que se va a reconocer la información de contenido.
length - Longitud exacta de los datos.
recognizeContentOptions - Configurable adicional RecognizeContentOptions que se puede pasar al reconocer contenido o diseño en un formulario.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

que SyncPoller<T,U> sondea la operación de reconocimiento de contenido hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de FormPage.

beginRecognizeContentFromUrl

public SyncPoller<>> beginRecognizeContentFromUrl(String formUrl)

Reconoce datos de contenido o diseño de documentos mediante el reconocimiento óptico de caracteres (OCR).

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Código de ejemplo

String formUrl = "{form_url}";
 formRecognizerClient.beginRecognizeContentFromUrl(formUrl)
     .getFinalResult()
     .forEach(formPage -> {
         System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
         System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
         // Table information
         System.out.println("Recognized Tables: ");
         formPage.getTables()
             .stream()
             .flatMap(formTable -> formTable.getCells().stream())
             .forEach(recognizedTableCell -> System.out.printf("%s ", recognizedTableCell.getText()));
     });

Parameters:

formUrl - Dirección URL del formulario que se va a analizar.

Returns:

que SyncPoller<T,U> sondea la operación reconocer formulario de contenido hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de FormPage.

beginRecognizeContentFromUrl

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

Reconoce los datos de contenido y diseño mediante el reconocimiento óptico de caracteres (OCR).

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

El reconocimiento de contenido admite la identificación automática del idioma y los documentos de varias idiomas, por lo que solo debe proporcionar un código de idioma si desea forzar que el documento se procese como ese idioma específico en RecognizeContentOptions.

Código de ejemplo

String formPath = "{file_source_url}";
 formRecognizerClient.beginRecognizeContentFromUrl(formPath,
     new RecognizeContentOptions()
         .setPollInterval(Duration.ofSeconds(5)), Context.NONE)
     .getFinalResult()
     .forEach(formPage -> {
         System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
         System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
         // Table information
         System.out.println("Recognized Tables: ");
         formPage.getTables()
             .stream()
             .flatMap(formTable -> formTable.getCells().stream())
             .forEach(recognizedTableCell -> System.out.printf("%s ", recognizedTableCell.getText()));
     });

Parameters:

formUrl - Dirección URL de origen del formulario de entrada.
recognizeContentOptions - Configurable adicional RecognizeContentOptions que se puede pasar al reconocer contenido o diseño en un formulario.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

que SyncPoller<T,U> sondea la operación de diseño de reconocimiento hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de FormPage.

beginRecognizeCustomForms

public SyncPoller<>> beginRecognizeCustomForms(String modelId, InputStream form, long length)

Reconoce datos de formulario de documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado con o sin etiquetas.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Código de ejemplo

File form = new File("{local/file_path/fileName.jpg}");
 String modelId = "{custom_trained_model_id}";
 byte[] fileContent = Files.readAllBytes(form.toPath());
 try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {

     formRecognizerClient.beginRecognizeCustomForms(modelId, targetStream, form.length())
         .getFinalResult()
         .stream()
         .map(RecognizedForm::getFields)
         .forEach(formFieldMap -> formFieldMap.forEach((fieldText, formField) -> {
             System.out.printf("Field text: %s%n", fieldText);
             System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
             System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
         }));
 }

Parameters:

modelId - El formato de cadena UUID personalizado entrenado id. de modelo que se va a usar.
form - Datos del formulario del que se va a reconocer la información del formulario.
length - Longitud exacta de los datos.

Returns:

que SyncPoller<T,U> sondea la operación reconocer formulario personalizado hasta que se haya completado, se ha producido un error o se ha cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeCustomForms

public SyncPoller<>> beginRecognizeCustomForms(String modelId, InputStream form, long length, RecognizeCustomFormsOptions recognizeCustomFormsOptions, Context context)

Reconoce los datos de formulario de los documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Código de ejemplo

File form = new File("{local/file_path/fileName.jpg}");
 String modelId = "{custom_trained_model_id}";
 boolean includeFieldElements = true;
 byte[] fileContent = Files.readAllBytes(form.toPath());

 try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
     formRecognizerClient.beginRecognizeCustomForms(modelId, targetStream, form.length(),
         new RecognizeCustomFormsOptions()
             .setContentType(FormContentType.IMAGE_JPEG)
             .setFieldElementsIncluded(includeFieldElements)
             .setPollInterval(Duration.ofSeconds(10)), Context.NONE)
         .getFinalResult()
         .stream()
         .map(RecognizedForm::getFields)
         .forEach(formFieldMap -> formFieldMap.forEach((fieldText, formField) -> {
             System.out.printf("Field text: %s%n", fieldText);
             System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
             System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
         }));
 }

Parameters:

modelId - El formato de cadena UUID personalizado entrenado id. de modelo que se va a usar.
form - Datos del formulario del que se va a reconocer la información del formulario.
length - Longitud exacta de los datos.
recognizeCustomFormsOptions - Configurable adicional RecognizeCustomFormsOptions que se puede pasar al reconocer formularios personalizados.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

que SyncPoller<T,U> sondea la operación reconocer formulario personalizado hasta que se haya completado, se ha producido un error o se ha cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeCustomFormsFromUrl

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

Reconoce datos de formulario de documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado con o sin etiquetas.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de soporte técnico de cancelación.

Código de ejemplo

String formUrl = "{form_url}";
 String modelId = "{custom_trained_model_id}";

 formRecognizerClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl).getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(formFieldMap -> formFieldMap.forEach((fieldText, formField) -> {
         System.out.printf("Field text: %s%n", fieldText);
         System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
         System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
     }));

Parameters:

modelId - El formato de cadena UUID personalizado entrenado id. de modelo que se va a usar.
formUrl - Dirección URL del formulario que se va a analizar.

Returns:

para SyncPoller<T,U> sondear el progreso de la operación de reconocimiento de formulario personalizado hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeCustomFormsFromUrl

public SyncPoller<>> beginRecognizeCustomFormsFromUrl(String modelId, String formUrl, RecognizeCustomFormsOptions recognizeCustomFormsOptions, Context context)

Reconoce los datos de formulario de los documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado personalizado.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de soporte técnico de cancelación.

Código de ejemplo

String analyzeFilePath = "{file_source_url}";
 String modelId = "{model_id}";
 boolean includeFieldElements = true;

 formRecognizerClient.beginRecognizeCustomFormsFromUrl(modelId, analyzeFilePath,
     new RecognizeCustomFormsOptions()
         .setFieldElementsIncluded(includeFieldElements)
         .setPollInterval(Duration.ofSeconds(10)), Context.NONE)
     .getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(formFieldMap -> formFieldMap.forEach((fieldText, formField) -> {
         System.out.printf("Field text: %s%n", fieldText);
         System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
         System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
     }));

Parameters:

modelId - El formato de cadena UUID personalizado entrenado id. de modelo que se va a usar.
formUrl - Dirección URL de origen del formulario de entrada.
recognizeCustomFormsOptions - Configurable adicional RecognizeCustomFormsOptions que se puede pasar al reconocer formularios personalizados.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

para SyncPoller<T,U> sondear el progreso de la operación de reconocimiento de formulario personalizado hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeIdentityDocuments

public SyncPoller<>> beginRecognizeIdentityDocuments(InputStream identityDocument, long length)

Analice los documentos de identidad mediante el reconocimiento óptico de caracteres (OCR) y un modelo precompilado entrenado en el modelo de documentos de identidad para extraer información clave de pasaportes y licencias de conducir de EE. UU. Consulte aquí los campos que se encuentran en un documento de identidad.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de soporte técnico de cancelación.

Código de ejemplo

File license = new File("local/file_path/license.jpg");
 ByteArrayInputStream inputStream = new ByteArrayInputStream(Files.readAllBytes(license.toPath()));
 // if training polling operation completed, retrieve the final result.
 formRecognizerClient.beginRecognizeIdentityDocuments(inputStream, license.length())
     .getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(recognizedFields -> {
         FormField firstNameField = recognizedFields.get("FirstName");
         if (firstNameField != null) {
             if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
                 String firstName = firstNameField.getValue().asString();
                 System.out.printf("First Name: %s, confidence: %.2f%n",
                     firstName, firstNameField.getConfidence());
             }
         }

         FormField lastNameField = recognizedFields.get("LastName");
         if (lastNameField != null) {
             if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
                 String lastName = lastNameField.getValue().asString();
                 System.out.printf("Last name: %s, confidence: %.2f%n",
                     lastName, lastNameField.getConfidence());
             }
         }

         FormField countryRegionFormField = recognizedFields.get("CountryRegion");
         if (countryRegionFormField != null) {
             if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
                 String countryRegion = countryRegionFormField.getValue().asCountryRegion();
                 System.out.printf("Country or region: %s, confidence: %.2f%n",
                     countryRegion, countryRegionFormField.getConfidence());
             }
         }

         FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
         if (dateOfExpirationField != null) {
             if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
                 LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
                 System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
                     expirationDate, dateOfExpirationField.getConfidence());
             }
         }

         FormField documentNumberField = recognizedFields.get("DocumentNumber");
         if (documentNumberField != null) {
             if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
                 String documentNumber = documentNumberField.getValue().asString();
                 System.out.printf("Document number: %s, confidence: %.2f%n",
                     documentNumber, documentNumberField.getConfidence());
             }
         }
     });

Parameters:

identityDocument - Datos del documento de identidad del que se va a reconocer la información del documento de identidad.
length - Longitud exacta de los datos.

Returns:

que SyncPoller<T,U> sondea la operación reconocer documento de identidad hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeIdentityDocuments

public SyncPoller<>> beginRecognizeIdentityDocuments(InputStream identityDocument, long length, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions, Context context)

Analice los documentos de identidad mediante el reconocimiento óptico de caracteres (OCR) y un modelo precompilado entrenado en el modelo de documentos de identidad para extraer información clave de pasaportes y licencias de conducir de EE. UU. Consulte aquí los campos que se encuentran en un documento de identidad.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de soporte técnico de cancelación.

Código de ejemplo

File licenseDocument = new File("local/file_path/license.jpg");
 boolean includeFieldElements = true;
 // Utility method to convert input stream to Byte buffer
 ByteArrayInputStream inputStream = new ByteArrayInputStream(Files.readAllBytes(licenseDocument.toPath()));
 // if training polling operation completed, retrieve the final result.
 formRecognizerClient.beginRecognizeIdentityDocuments(inputStream,
     licenseDocument.length(),
     new RecognizeIdentityDocumentOptions()
         .setContentType(FormContentType.IMAGE_JPEG)
         .setFieldElementsIncluded(includeFieldElements),
     Context.NONE)
     .setPollInterval(Duration.ofSeconds(5))
     .getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(recognizedFields -> {
         FormField firstNameField = recognizedFields.get("FirstName");
         if (firstNameField != null) {
             if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
                 String firstName = firstNameField.getValue().asString();
                 System.out.printf("First Name: %s, confidence: %.2f%n",
                     firstName, firstNameField.getConfidence());
             }
         }

         FormField lastNameField = recognizedFields.get("LastName");
         if (lastNameField != null) {
             if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
                 String lastName = lastNameField.getValue().asString();
                 System.out.printf("Last name: %s, confidence: %.2f%n",
                     lastName, lastNameField.getConfidence());
             }
         }

         FormField countryRegionFormField = recognizedFields.get("CountryRegion");
         if (countryRegionFormField != null) {
             if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
                 String countryRegion = countryRegionFormField.getValue().asCountryRegion();
                 System.out.printf("Country or region: %s, confidence: %.2f%n",
                     countryRegion, countryRegionFormField.getConfidence());
             }
         }

         FormField dateOfBirthField = recognizedFields.get("DateOfBirth");
         if (dateOfBirthField != null) {
             if (FieldValueType.DATE == dateOfBirthField.getValue().getValueType()) {
                 LocalDate dateOfBirth = dateOfBirthField.getValue().asDate();
                 System.out.printf("Date of Birth: %s, confidence: %.2f%n",
                     dateOfBirth, dateOfBirthField.getConfidence());
             }
         }

         FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
         if (dateOfExpirationField != null) {
             if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
                 LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
                 System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
                     expirationDate, dateOfExpirationField.getConfidence());
             }
         }

         FormField documentNumberField = recognizedFields.get("DocumentNumber");
         if (documentNumberField != null) {
             if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
                 String documentNumber = documentNumberField.getValue().asString();
                 System.out.printf("Document number: %s, confidence: %.2f%n",
                     documentNumber, documentNumberField.getConfidence());
             }
         }
     });

Parameters:

identityDocument - Datos del documento de identidad del que se va a reconocer información.
length - Longitud exacta de los datos.
recognizeIdentityDocumentOptions - Configurable adicional RecognizeIdentityDocumentOptions que se puede pasar al analizar un documento de identidad.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

que SyncPoller<T,U> sondea la operación de reconocer documento de identidad hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeIdentityDocumentsFromUrl

public SyncPoller<>> beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl)

Analice documentos de identidad mediante el reconocimiento óptico de caracteres (OCR) y un modelo precompilado entrenado en el modelo de documentos de identidad para extraer información clave de pasaportes y licencias de conducir de EE. UU. Consulte aquí los campos que se encuentran en un documento de identidad.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Código de ejemplo

String licenseDocumentUrl = "licenseDocumentUrl";
 // if training polling operation completed, retrieve the final result.
 formRecognizerClient.beginRecognizeIdentityDocumentsFromUrl(licenseDocumentUrl)
     .getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(recognizedFields -> {
         FormField firstNameField = recognizedFields.get("FirstName");
         if (firstNameField != null) {
             if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
                 String firstName = firstNameField.getValue().asString();
                 System.out.printf("First Name: %s, confidence: %.2f%n",
                     firstName, firstNameField.getConfidence());
             }
         }

         FormField lastNameField = recognizedFields.get("LastName");
         if (lastNameField != null) {
             if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
                 String lastName = lastNameField.getValue().asString();
                 System.out.printf("Last name: %s, confidence: %.2f%n",
                     lastName, lastNameField.getConfidence());
             }
         }

         FormField countryRegionFormField = recognizedFields.get("CountryRegion");
         if (countryRegionFormField != null) {
             if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
                 String countryRegion = countryRegionFormField.getValue().asCountryRegion();
                 System.out.printf("Country or region: %s, confidence: %.2f%n",
                     countryRegion, countryRegionFormField.getConfidence());
             }
         }

         FormField dateOfBirthField = recognizedFields.get("DateOfBirth");
         if (dateOfBirthField != null) {
             if (FieldValueType.DATE == dateOfBirthField.getValue().getValueType()) {
                 LocalDate dateOfBirth = dateOfBirthField.getValue().asDate();
                 System.out.printf("Date of Birth: %s, confidence: %.2f%n",
                     dateOfBirth, dateOfBirthField.getConfidence());
             }
         }

         FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
         if (dateOfExpirationField != null) {
             if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
                 LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
                 System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
                     expirationDate, dateOfExpirationField.getConfidence());
             }
         }

         FormField documentNumberField = recognizedFields.get("DocumentNumber");
         if (documentNumberField != null) {
             if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
                 String documentNumber = documentNumberField.getValue().asString();
                 System.out.printf("Document number: %s, confidence: %.2f%n",
                     documentNumber, documentNumberField.getConfidence());
             }
         }
     });

Parameters:

identityDocumentUrl - Dirección URL de origen del documento de identidad de entrada.

Returns:

para SyncPoller<T,U> sondear el progreso de la operación del documento de identidad de reconocimiento hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeIdentityDocumentsFromUrl

public SyncPoller<>> beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions, Context context)

Analice documentos de identidad mediante el reconocimiento óptico de caracteres (OCR) y un modelo precompilado entrenado en el modelo de documentos de identidad para extraer información clave de pasaportes y licencias de conducir de EE. UU. Consulte aquí los campos que se encuentran en un documento de identidad.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Código de ejemplo

String licenseDocumentUrl = "licenseDocumentUrl";
 boolean includeFieldElements = true;
 // if training polling operation completed, retrieve the final result.
 formRecognizerClient.beginRecognizeIdentityDocumentsFromUrl(licenseDocumentUrl,
     new RecognizeIdentityDocumentOptions()
         .setFieldElementsIncluded(includeFieldElements),
     Context.NONE).setPollInterval(Duration.ofSeconds(5))
     .getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(recognizedFields -> {
         FormField firstNameField = recognizedFields.get("FirstName");
         if (firstNameField != null) {
             if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
                 String firstName = firstNameField.getValue().asString();
                 System.out.printf("First Name: %s, confidence: %.2f%n",
                     firstName, firstNameField.getConfidence());
             }
         }

         FormField lastNameField = recognizedFields.get("LastName");
         if (lastNameField != null) {
             if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
                 String lastName = lastNameField.getValue().asString();
                 System.out.printf("Last name: %s, confidence: %.2f%n",
                     lastName, lastNameField.getConfidence());
             }
         }

         FormField countryRegionFormField = recognizedFields.get("CountryRegion");
         if (countryRegionFormField != null) {
             if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
                 String countryRegion = countryRegionFormField.getValue().asCountryRegion();
                 System.out.printf("Country or region: %s, confidence: %.2f%n",
                     countryRegion, countryRegionFormField.getConfidence());
             }
         }

         FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
         if (dateOfExpirationField != null) {
             if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
                 LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
                 System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
                     expirationDate, dateOfExpirationField.getConfidence());
             }
         }

         FormField documentNumberField = recognizedFields.get("DocumentNumber");
         if (documentNumberField != null) {
             if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
                 String documentNumber = documentNumberField.getValue().asString();
                 System.out.printf("Document number: %s, confidence: %.2f%n",
                     documentNumber, documentNumberField.getConfidence());
             }
         }
     });

Parameters:

identityDocumentUrl - Dirección URL de origen del documento de identidad de entrada.
recognizeIdentityDocumentOptions - Elemento configurable RecognizeIdentityDocumentOptions adicional que se puede pasar al analizar un documento de identidad.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

para SyncPoller<T,U> sondear el progreso de la operación del documento de identidad de reconocimiento hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeInvoices

public SyncPoller<>> beginRecognizeInvoices(InputStream invoice, long length)

Reconoce los datos de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de factura entrenado previamente.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Consulte aquí los campos que se encuentran en una factura.

Código de ejemplo

File invoice = new File("local/file_path/invoice.jpg");
 ByteArrayInputStream inputStream = new ByteArrayInputStream(Files.readAllBytes(invoice.toPath()));
 // if training polling operation completed, retrieve the final result.
 formRecognizerClient.beginRecognizeInvoices(inputStream, invoice.length())
     .getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(recognizedFields -> {
         FormField customAddrFormField = recognizedFields.get("CustomerAddress");
         if (customAddrFormField != null) {
             if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
                 System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
             }
         }
         FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
         if (invoiceDateFormField != null) {
             if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
                 LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
                 System.out.printf("Invoice Date: %s, confidence: %.2f%n",
                     invoiceDate, invoiceDateFormField.getConfidence());
             }
         }
     });

Parameters:

invoice - Los datos de la factura de los que se va a reconocer la información relacionada con la factura.
length - Longitud exacta de los datos.

Returns:

que SyncPoller<T,U> sondea la operación de reconocimiento de factura hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeInvoices

public SyncPoller<>> beginRecognizeInvoices(InputStream invoice, long length, RecognizeInvoicesOptions recognizeInvoicesOptions, Context context)

Reconoce los datos de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de factura entrenado previamente.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Consulte aquí los campos que se encuentran en una factura.

Código de ejemplo

File invoice = new File("local/file_path/invoice.jpg");
 boolean includeFieldElements = true;
 // Utility method to convert input stream to Byte buffer
 ByteArrayInputStream inputStream = new ByteArrayInputStream(Files.readAllBytes(invoice.toPath()));
 // if training polling operation completed, retrieve the final result.
 formRecognizerClient.beginRecognizeInvoices(inputStream,
     invoice.length(),
     new RecognizeInvoicesOptions()
         .setContentType(FormContentType.IMAGE_JPEG)
         .setFieldElementsIncluded(includeFieldElements),
     Context.NONE)
     .setPollInterval(Duration.ofSeconds(5))
     .getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(recognizedFields -> {
         FormField customAddrFormField = recognizedFields.get("CustomerAddress");
         if (customAddrFormField != null) {
             if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
                 System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
             }
         }
         FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
         if (invoiceDateFormField != null) {
             if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
                 LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
                 System.out.printf("Invoice Date: %s, confidence: %.2f%n",
                     invoiceDate, invoiceDateFormField.getConfidence());
             }
         }
     });

Parameters:

invoice - Los datos de la factura de los que se va a reconocer la información relacionada con la factura.
length - Longitud exacta de los datos.
recognizeInvoicesOptions - El elemento configurable RecognizeInvoicesOptions adicional que se puede pasar al analizar una factura.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

que SyncPoller<T,U> sondea la operación de reconocimiento de factura hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeInvoicesFromUrl

public SyncPoller<>> beginRecognizeInvoicesFromUrl(String invoiceUrl)

Reconoce los datos de factura del documento mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado previamente de factura.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Consulte aquí los campos que se encuentran en una factura.

Código de ejemplo

String invoiceUrl = "invoice_url";
 // if training polling operation completed, retrieve the final result.
 formRecognizerClient.beginRecognizeInvoicesFromUrl(invoiceUrl)
     .getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(recognizedFields -> {
         FormField customAddrFormField = recognizedFields.get("CustomerAddress");
         if (customAddrFormField != null) {
             if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
                 System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
             }
         }
         FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
         if (invoiceDateFormField != null) {
             if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
                 LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
                 System.out.printf("Invoice Date: %s, confidence: %.2f%n",
                     invoiceDate, invoiceDateFormField.getConfidence());
             }
         }
     });

Parameters:

invoiceUrl - Dirección URL del documento de factura que se va a analizar.

Returns:

para SyncPoller<T,U> sondear el progreso de la operación de reconocimiento de la factura hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeInvoicesFromUrl

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

Reconoce los datos de factura de los documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado previamente de factura.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Código de ejemplo

String invoiceUrl = "invoice_url";
 boolean includeFieldElements = true;
 // if training polling operation completed, retrieve the final result.
 formRecognizerClient.beginRecognizeInvoicesFromUrl(invoiceUrl,
     new RecognizeInvoicesOptions()
         .setFieldElementsIncluded(includeFieldElements),
     Context.NONE).setPollInterval(Duration.ofSeconds(5))
     .getFinalResult()
     .stream()
     .map(RecognizedForm::getFields)
     .forEach(recognizedFields -> {
         FormField customAddrFormField = recognizedFields.get("CustomerAddress");
         if (customAddrFormField != null) {
             if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
                 System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
             }
         }
         FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
         if (invoiceDateFormField != null) {
             if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
                 LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
                 System.out.printf("Invoice Date: %s, confidence: %.2f%n",
                     invoiceDate, invoiceDateFormField.getConfidence());
             }
         }
     });

Parameters:

invoiceUrl - Dirección URL de origen del documento de factura de entrada.
recognizeInvoicesOptions - El elemento configurable RecognizeInvoicesOptions adicional que se puede pasar al analizar una factura.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

para SyncPoller<T,U> sondear el progreso de la operación de reconocimiento de la factura hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeReceipts

public SyncPoller<>> beginRecognizeReceipts(InputStream receipt, long length)

Reconoce los datos de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de recibo entrenado previamente.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Consulte aquí los campos que se encuentran en un recibo.

Código de ejemplo

File receipt = new File("{receipt_url}");
 byte[] fileContent = Files.readAllBytes(receipt.toPath());
 try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {

     formRecognizerClient.beginRecognizeReceipts(targetStream, receipt.length()).getFinalResult()
         .forEach(recognizedReceipt -> {
             Map<String, FormField> recognizedFields = recognizedReceipt.getFields();
             FormField merchantNameField = recognizedFields.get("MerchantName");
             if (merchantNameField != null) {
                 if (FieldValueType.STRING == merchantNameField.getValue().getValueType()) {
                     String merchantName = merchantNameField.getValue().asString();
                     System.out.printf("Merchant Name: %s, confidence: %.2f%n",
                         merchantName, merchantNameField.getConfidence());
                 }
             }

             FormField merchantPhoneNumberField = recognizedFields.get("MerchantPhoneNumber");
             if (merchantPhoneNumberField != null) {
                 if (FieldValueType.PHONE_NUMBER == merchantPhoneNumberField.getValue().getValueType()) {
                     String merchantAddress = merchantPhoneNumberField.getValue().asPhoneNumber();
                     System.out.printf("Merchant Phone number: %s, confidence: %.2f%n",
                         merchantAddress, merchantPhoneNumberField.getConfidence());
                 }
             }

             FormField transactionDateField = recognizedFields.get("TransactionDate");
             if (transactionDateField != null) {
                 if (FieldValueType.DATE == transactionDateField.getValue().getValueType()) {
                     LocalDate transactionDate = transactionDateField.getValue().asDate();
                     System.out.printf("Transaction Date: %s, confidence: %.2f%n",
                         transactionDate, transactionDateField.getConfidence());
                 }
             }

             FormField receiptItemsField = recognizedFields.get("Items");
             if (receiptItemsField != null) {
                 System.out.printf("Receipt Items: %n");
                 if (FieldValueType.LIST == receiptItemsField.getValue().getValueType()) {
                     List<FormField> receiptItems = receiptItemsField.getValue().asList();
                     receiptItems.stream()
                         .filter(receiptItem -> FieldValueType.MAP == receiptItem.getValue().getValueType())
                         .map(formField -> formField.getValue().asMap())
                         .forEach(formFieldMap -> formFieldMap.forEach((key, formField) -> {
                             if ("Quantity".equals(key)) {
                                 if (FieldValueType.FLOAT == formField.getValue().getValueType()) {
                                     Float quantity = formField.getValue().asFloat();
                                     System.out.printf("Quantity: %f, confidence: %.2f%n",
                                         quantity, formField.getConfidence());
                                 }
                             }
                         }));
                 }
             }
         });
 }

Parameters:

receipt - Datos del recibo del que se va a reconocer la información de recepción.
length - Longitud exacta de los datos.

Returns:

que SyncPoller<T,U> sondea la operación de recepción de reconocimiento hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeReceipts

public SyncPoller<>> beginRecognizeReceipts(InputStream receipt, long length, RecognizeReceiptsOptions recognizeReceiptsOptions, Context context)

Reconoce los datos de los datos del documento proporcionados mediante el reconocimiento óptico de caracteres (OCR) y un modelo de recibo entrenado previamente.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Consulte aquí los campos que se encuentran en un recibo.

Código de ejemplo

File receipt = new File("{local/file_path/fileName.jpg}");
 boolean includeFieldElements = true;
 byte[] fileContent = Files.readAllBytes(receipt.toPath());
 try (InputStream targetStream = new ByteArrayInputStream(fileContent)) {
     for (RecognizedForm recognizedForm : formRecognizerClient
         .beginRecognizeReceipts(targetStream, receipt.length(),
             new RecognizeReceiptsOptions()
                 .setContentType(FormContentType.IMAGE_JPEG)
                 .setFieldElementsIncluded(includeFieldElements)
                 .setLocale(FormRecognizerLocale.EN_US)
                 .setPollInterval(Duration.ofSeconds(5)), Context.NONE)
         .getFinalResult()) {
         Map<String, FormField> recognizedFields = recognizedForm.getFields();
         FormField merchantNameField = recognizedFields.get("MerchantName");
         if (merchantNameField != null) {
             if (FieldValueType.STRING == merchantNameField.getValue().getValueType()) {
                 String merchantName = merchantNameField.getValue().asString();
                 System.out.printf("Merchant Name: %s, confidence: %.2f%n",
                     merchantName, merchantNameField.getConfidence());
             }
         }
         FormField merchantPhoneNumberField = recognizedFields.get("MerchantPhoneNumber");
         if (merchantPhoneNumberField != null) {
             if (FieldValueType.PHONE_NUMBER == merchantPhoneNumberField.getValue().getValueType()) {
                 String merchantAddress = merchantPhoneNumberField.getValue().asPhoneNumber();
                 System.out.printf("Merchant Phone number: %s, confidence: %.2f%n",
                     merchantAddress, merchantPhoneNumberField.getConfidence());
             }
         }
         FormField transactionDateField = recognizedFields.get("TransactionDate");
         if (transactionDateField != null) {
             if (FieldValueType.DATE == transactionDateField.getValue().getValueType()) {
                 LocalDate transactionDate = transactionDateField.getValue().asDate();
                 System.out.printf("Transaction Date: %s, confidence: %.2f%n",
                     transactionDate, transactionDateField.getConfidence());
             }
         }
         FormField receiptItemsField = recognizedFields.get("Items");
         if (receiptItemsField != null) {
             System.out.printf("Receipt Items: %n");
             if (FieldValueType.LIST == receiptItemsField.getValue().getValueType()) {
                 List<FormField> receiptItems = receiptItemsField.getValue().asList();
                 receiptItems.stream()
                     .filter(receiptItem -> FieldValueType.MAP == receiptItem.getValue().getValueType())
                     .map(formField -> formField.getValue().asMap())
                     .forEach(formFieldMap -> formFieldMap.forEach((key, formField) -> {
                         if ("Quantity".equals(key)) {
                             if (FieldValueType.FLOAT == formField.getValue().getValueType()) {
                                 Float quantity = formField.getValue().asFloat();
                                 System.out.printf("Quantity: %f, confidence: %.2f%n",
                                     quantity, formField.getConfidence());
                             }
                         }
                     }));
             }
         }
     }
 }

Parameters:

receipt - Datos del recibo del que se va a reconocer la información de recepción.
length - Longitud exacta de los datos.
recognizeReceiptsOptions - El elemento configurable RecognizeReceiptsOptions adicional que se puede pasar al analizar un recibo.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

que SyncPoller<T,U> sondea la operación de recepción de reconocimiento hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeReceiptsFromUrl

public SyncPoller<>> beginRecognizeReceiptsFromUrl(String receiptUrl)

Reconoce los datos de recepción del documento mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado de recibo precompilado.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Consulte aquí los campos que se encuentran en un recibo.

Código de ejemplo

String receiptUrl = "{file_source_url}";
 formRecognizerClient.beginRecognizeReceiptsFromUrl(receiptUrl)
     .getFinalResult()
     .forEach(recognizedReceipt -> {
         Map<String, FormField> recognizedFields = recognizedReceipt.getFields();
         FormField merchantNameField = recognizedFields.get("MerchantName");
         if (merchantNameField != null) {
             if (FieldValueType.STRING == merchantNameField.getValue().getValueType()) {
                 String merchantName = merchantNameField.getValue().asString();
                 System.out.printf("Merchant Name: %s, confidence: %.2f%n",
                     merchantName, merchantNameField.getConfidence());
             }
         }

         FormField merchantPhoneNumberField = recognizedFields.get("MerchantPhoneNumber");
         if (merchantPhoneNumberField != null) {
             if (FieldValueType.PHONE_NUMBER == merchantPhoneNumberField.getValue().getValueType()) {
                 String merchantAddress = merchantPhoneNumberField.getValue().asPhoneNumber();
                 System.out.printf("Merchant Phone number: %s, confidence: %.2f%n",
                     merchantAddress, merchantPhoneNumberField.getConfidence());
             }
         }

         FormField transactionDateField = recognizedFields.get("TransactionDate");
         if (transactionDateField != null) {
             if (FieldValueType.DATE == transactionDateField.getValue().getValueType()) {
                 LocalDate transactionDate = transactionDateField.getValue().asDate();
                 System.out.printf("Transaction Date: %s, confidence: %.2f%n",
                     transactionDate, transactionDateField.getConfidence());
             }
         }

         FormField receiptItemsField = recognizedFields.get("Items");
         if (receiptItemsField != null) {
             System.out.printf("Receipt Items: %n");
             if (FieldValueType.LIST == receiptItemsField.getValue().getValueType()) {
                 List<FormField> receiptItems = receiptItemsField.getValue().asList();
                 receiptItems.stream()
                     .filter(receiptItem -> FieldValueType.MAP == receiptItem.getValue().getValueType())
                     .map(formField -> formField.getValue().asMap())
                     .forEach(formFieldMap -> formFieldMap.forEach((key, formField) -> {
                         if ("Quantity".equals(key)) {
                             if (FieldValueType.FLOAT == formField.getValue().getValueType()) {
                                 Float quantity = formField.getValue().asFloat();
                                 System.out.printf("Quantity: %f, confidence: %.2f%n",
                                     quantity, formField.getConfidence());
                             }
                         }
                     }));
             }
         }
     });

Parameters:

receiptUrl - Dirección URL del recibo que se va a analizar.

Returns:

para SyncPoller<T,U> sondear el progreso de la operación de recepción de reconocimiento hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

beginRecognizeReceiptsFromUrl

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

Reconoce los datos de recepción de documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado de recibo precompilado.

El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.

Código de ejemplo

String receiptUrl = "{receipt_url}";
 formRecognizerClient.beginRecognizeReceiptsFromUrl(receiptUrl,
     new RecognizeReceiptsOptions()
         .setLocale(FormRecognizerLocale.EN_US)
         .setPollInterval(Duration.ofSeconds(5))
         .setFieldElementsIncluded(true), Context.NONE)
     .getFinalResult()
     .forEach(recognizedReceipt -> {
         Map<String, FormField> recognizedFields = recognizedReceipt.getFields();
         FormField merchantNameField = recognizedFields.get("MerchantName");
         if (merchantNameField != null) {
             if (FieldValueType.STRING == merchantNameField.getValue().getValueType()) {
                 String merchantName = merchantNameField.getValue().asString();
                 System.out.printf("Merchant Name: %s, confidence: %.2f%n",
                     merchantName, merchantNameField.getConfidence());
             }
         }

         FormField merchantPhoneNumberField = recognizedFields.get("MerchantPhoneNumber");
         if (merchantPhoneNumberField != null) {
             if (FieldValueType.PHONE_NUMBER == merchantPhoneNumberField.getValue().getValueType()) {
                 String merchantAddress = merchantPhoneNumberField.getValue().asPhoneNumber();
                 System.out.printf("Merchant Phone number: %s, confidence: %.2f%n",
                     merchantAddress, merchantPhoneNumberField.getConfidence());
             }
         }

         FormField transactionDateField = recognizedFields.get("TransactionDate");
         if (transactionDateField != null) {
             if (FieldValueType.DATE == transactionDateField.getValue().getValueType()) {
                 LocalDate transactionDate = transactionDateField.getValue().asDate();
                 System.out.printf("Transaction Date: %s, confidence: %.2f%n",
                     transactionDate, transactionDateField.getConfidence());
             }
         }

         FormField receiptItemsField = recognizedFields.get("Items");
         if (receiptItemsField != null) {
             System.out.printf("Receipt Items: %n");
             if (FieldValueType.LIST == receiptItemsField.getValue().getValueType()) {
                 List<FormField> receiptItems = receiptItemsField.getValue().asList();
                 receiptItems.stream()
                     .filter(receiptItem -> FieldValueType.MAP == receiptItem.getValue().getValueType())
                     .map(formField -> formField.getValue().asMap())
                     .forEach(formFieldMap -> formFieldMap.forEach((key, formField) -> {
                         if ("Quantity".equals(key)) {
                             if (FieldValueType.FLOAT == formField.getValue().getValueType()) {
                                 Float quantity = formField.getValue().asFloat();
                                 System.out.printf("Quantity: %f, confidence: %.2f%n",
                                     quantity, formField.getConfidence());
                             }
                         }
                     }));
             }
         }
     });

Parameters:

receiptUrl - Dirección URL de origen al recibo de entrada.
recognizeReceiptsOptions - El elemento configurable RecognizeReceiptsOptions adicional que se puede pasar al analizar un recibo.
context - Contexto adicional que se pasa a través de la canalización HTTP durante la llamada al servicio.

Returns:

para SyncPoller<T,U> sondear el progreso de la operación de recepción de reconocimiento hasta que se haya completado, se haya producido un error o se haya cancelado. La operación completada devuelve una lista de RecognizedForm.

Se aplica a