FormRecognizerAsyncClient Clase
- java.
lang. Object - com.
azure. ai. formrecognizer. FormRecognizerAsyncClient
- com.
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:
- 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 .
- 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.
- 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.
- 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 |
---|---|
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
beginRecognizeContent(Flux<ByteBuffer> form, long length)
Reconoce los datos de contenido y diseño mediante el reconocimiento óptico de caracteres (OCR). |
Poller |
beginRecognizeContent(Flux<ByteBuffer> form, long length, RecognizeContentOptions recognizeContentOptions)
Reconoce los datos de contenido y diseño mediante el reconocimiento óptico de caracteres (OCR). |
Poller |
beginRecognizeContentFromUrl(String formUrl)
Reconoce datos de contenido o diseño de documentos mediante el reconocimiento óptico de caracteres (OCR). |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
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. |
Poller |
beginRecognizeInvoicesFromUrl(String invoiceUrl)
Reconoce los datos de factura mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado previamente de factura. |
Poller |
beginRecognizeInvoicesFromUrl(String invoiceUrl, RecognizeInvoicesOptions recognizeInvoicesOptions)
Reconoce los datos de factura mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado previamente de factura. |
Poller |
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. |
Poller |
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. |
Poller |
beginRecognizeReceiptsFromUrl(String receiptUrl)
Reconoce los datos de recepción mediante el reconocimiento óptico de caracteres (OCR) y un modelo entrenado de recibo precompilado. |
Poller |
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
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:
Returns:
beginRecognizeBusinessCards
public PollerFlux
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:
Returns:
beginRecognizeBusinessCardsFromUrl
public PollerFlux
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:
Returns:
beginRecognizeBusinessCardsFromUrl
public PollerFlux
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:
Returns:
beginRecognizeContent
public PollerFlux
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:
Returns:
beginRecognizeContent
public PollerFlux
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:
Returns:
beginRecognizeContentFromUrl
public PollerFlux
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:
Returns:
beginRecognizeContentFromUrl
public PollerFlux
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:
Returns:
beginRecognizeCustomForms
public PollerFlux
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:
Returns:
beginRecognizeCustomForms
public PollerFlux
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:
Returns:
beginRecognizeCustomFormsFromUrl
public PollerFlux
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:
Returns:
beginRecognizeCustomFormsFromUrl
public PollerFlux
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:
Returns:
beginRecognizeIdentityDocuments
public PollerFlux
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:
Returns:
beginRecognizeIdentityDocuments
public PollerFlux
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:
Returns:
beginRecognizeIdentityDocumentsFromUrl
public PollerFlux
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:
Returns:
beginRecognizeIdentityDocumentsFromUrl
public PollerFlux
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:
Returns:
beginRecognizeInvoices
public PollerFlux
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:
Returns:
beginRecognizeInvoices
public PollerFlux
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:
Returns:
beginRecognizeInvoicesFromUrl
public PollerFlux
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:
Returns:
beginRecognizeInvoicesFromUrl
public PollerFlux
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:
Returns:
beginRecognizeReceipts
public PollerFlux
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:
Returns:
beginRecognizeReceipts
public PollerFlux
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:
Returns:
beginRecognizeReceiptsFromUrl
public PollerFlux
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:
Returns:
beginRecognizeReceiptsFromUrl
public PollerFlux
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:
Returns:
Se aplica a
Azure SDK for Java