Compartir a través de


FormRecognizerAsyncClient Clase

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

public final class FormRecognizerAsyncClient

Esta clase proporciona un cliente asincrónico para conectarse al Form Recognizer Azure Cognitive Service.

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

  1. Análisis de formularios personalizados: 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 rectángulo delimitador, de formularios y documentos. Use beginRecognizeContent 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 completa el análisis.

Nota: Este cliente solo admite V2_1 y reduce. Se recomienda usar una versión DocumentAnalysisClient de servicio más reciente y DocumentModelAdministrationClient.

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 Azure Identity.

Ejemplo: Construcción de un formRecognizerClient con DefaultAzureCredential

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

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

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

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

Resumen del método

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeCustomForms(String modelId, Flux<ByteBuffer> 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.

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

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

PollerFlux<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.

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

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

PollerFlux<FormRecognizerOperationResult,List<RecognizedForm>> beginRecognizeIdentityDocuments(Flux<ByteBuffer> 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.

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

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.

PollerFlux<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.

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Reconoce los datos de recepción 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 PollerFlux<>> beginRecognizeBusinessCards(Flux businessCard, long length)

Reconoce datos de tarjetas de presentación 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 compatibilidad con la cancelación.

Consulte aquí los campos que se encuentran en una tarjeta de presentación. Tenga en cuenta que el businessCard pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscriba.

Código de ejemplo

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 - Datos del documento del que se va a reconocer la información de la tarjeta de presentación.
length - Longitud exacta de los datos.

Returns:

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

beginRecognizeBusinessCards

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

Reconoce datos de tarjetas de presentación de documentos mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado de tarjeta de presentación 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 una tarjeta de presentación. Tenga en cuenta que el businessCard pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscriba.

Código de ejemplo

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 - Datos del documento del que se va a reconocer la información de la tarjeta de presentación.
length - Longitud exacta de los datos.
recognizeBusinessCardsOptions - El elemento configurable RecognizeBusinessCardsOptions adicional que se puede pasar al analizar una tarjeta de presentación.

Returns:

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

beginRecognizeBusinessCardsFromUrl

public PollerFlux<>> beginRecognizeBusinessCardsFromUrl(String businessCardUrl)

Reconoce datos de tarjetas de presentación 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 compatibilidad con la cancelación.

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

Código de ejemplo

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 - Dirección URL de origen de la tarjeta de presentación de entrada.

Returns:

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

beginRecognizeBusinessCardsFromUrl

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

Reconoce los datos de la tarjeta de presentación 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 compatibilidad con la cancelación.

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

Código de ejemplo

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

Returns:

Que PollerFlux<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.

beginRecognizeContent

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

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.

Tenga en cuenta que el data pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe producir los mismos datos cada vez que se suscribe.

Código de ejemplo

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 - Datos del formulario de los que se va a reconocer la información de contenido.
length - Longitud exacta de los datos.

Returns:

Sondea PollerFlux<T,U> 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 PollerFlux<>> beginRecognizeContent(Flux form, long length, RecognizeContentOptions recognizeContentOptions)

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.

Tenga en cuenta que el data pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe producir los mismos datos cada vez que se suscribe.

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("{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 - 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.

Returns:

Sondea PollerFlux<T,U> 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 PollerFlux<>> 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 = "{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 - Dirección URL del formulario que se va a analizar.

Returns:

que PollerFlux<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 PollerFlux<>> beginRecognizeContentFromUrl(String formUrl, RecognizeContentOptions recognizeContentOptions)

Reconoce los datos de diseño 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.

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

Returns:

que PollerFlux<T,U> sondea la operación reconocida de contenido o diseño 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 PollerFlux<>> beginRecognizeCustomForms(String modelId, Flux 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.

Tenga en cuenta que el data pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe producir los mismos datos cada vez que se suscribe.

Código de ejemplo

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 - 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 PollerFlux<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 PollerFlux<>> beginRecognizeCustomForms(String modelId, Flux form, long length, RecognizeCustomFormsOptions recognizeCustomFormsOptions)

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.

Tenga en cuenta que el data pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe producir los mismos datos cada vez que se suscribe.

Código de ejemplo

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

Returns:

que PollerFlux<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 PollerFlux<>> 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 compatibilidad con la cancelación.

Código de ejemplo

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 - 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:

que PollerFlux<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 PollerFlux<>> beginRecognizeCustomFormsFromUrl(String modelId, String formUrl, RecognizeCustomFormsOptions recognizeCustomFormsOptions)

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

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

Returns:

que PollerFlux<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.

beginRecognizeIdentityDocuments

public PollerFlux<>> beginRecognizeIdentityDocuments(Flux 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 compatibilidad con la cancelación.

Tenga en cuenta que el identityDocument pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe producir los mismos datos cada vez que se suscribe.

Código de ejemplo

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 - Datos del documento del que se va a reconocer la información del documento de identidad.
length - Longitud exacta de los datos.

Returns:

que PollerFlux<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.

beginRecognizeIdentityDocuments

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

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 compatibilidad con la cancelación.

Tenga en cuenta que el identityDocument pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscriba.

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
 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 - Datos del documento del que se va a reconocer la información del documento de identidad.
length - Longitud exacta de los datos.
recognizeIdentityDocumentOptions - Elemento configurable RecognizeIdentityDocumentOptions adicional que se puede pasar al analizar un documento de identidad.

Returns:

que PollerFlux<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.

beginRecognizeIdentityDocumentsFromUrl

public PollerFlux<>> 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 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 - Dirección URL de origen del documento de identidad de entrada.

Returns:

que PollerFlux<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.

beginRecognizeIdentityDocumentsFromUrl

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

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

Returns:

que PollerFlux<T,U> sondea la operación analizar 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.

beginRecognizeInvoices

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

Reconoce los datos de factura 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. Tenga en cuenta que el invoice pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscriba.

Código de ejemplo

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 - Datos del documento del que se va a reconocer la información de la factura.
length - Longitud exacta de los datos.

Returns:

que PollerFlux<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 PollerFlux<>> beginRecognizeInvoices(Flux invoice, long length, RecognizeInvoicesOptions recognizeInvoicesOptions)

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.

Consulte aquí los campos que se encuentran en una factura. Tenga en cuenta que el invoice pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscriba.

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
 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 - Datos del documento del que se va a reconocer la información de la factura.
length - Longitud exacta de los datos.
recognizeInvoicesOptions - El elemento configurable RecognizeInvoicesOptions adicional que se puede pasar al analizar una factura.

Returns:

que PollerFlux<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 PollerFlux<>> beginRecognizeInvoicesFromUrl(String invoiceUrl)

Reconoce los datos de factura 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.
 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 - Dirección URL de la factura que se va a analizar.

Returns:

que PollerFlux<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 PollerFlux<>> beginRecognizeInvoicesFromUrl(String invoiceUrl, RecognizeInvoicesOptions recognizeInvoicesOptions)

Reconoce los datos de factura 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.
 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 - Dirección URL de origen de la factura de entrada.
recognizeInvoicesOptions - El elemento configurable RecognizeInvoicesOptions adicional que se puede pasar al analizar una factura.

Returns:

que PollerFlux<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.

beginRecognizeReceipts

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

Reconoce los datos de recepción 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. Tenga en cuenta que el receipt pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscriba.

Código de ejemplo

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 - Datos del documento del que se va a reconocer la información de recepción.
length - Longitud exacta de los datos.

Returns:

que PollerFlux<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 PollerFlux<>> beginRecognizeReceipts(Flux receipt, long length, RecognizeReceiptsOptions recognizeReceiptsOptions)

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.

Consulte aquí los campos que se encuentran en un recibo. Tenga en cuenta que el receipt pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscriba.

Código de ejemplo

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 - Datos del documento 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.

Returns:

que PollerFlux<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 PollerFlux<>> beginRecognizeReceiptsFromUrl(String receiptUrl)

Reconoce los datos de recepción 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 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 - Dirección URL del recibo que se va a analizar.

Returns:

que PollerFlux<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 PollerFlux<>> beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeReceiptsOptions recognizeReceiptsOptions)

Reconoce los datos de recepción 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 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 - Dirección URL de origen de la entrada.
recognizeReceiptsOptions - Configurable adicional RecognizeReceiptsOptions que se puede pasar al analizar un recibo.

Returns:

que PollerFlux<T,U> sondea la operación de confirmació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