FormRecognizerAsyncClient Classe
- java.
lang. Object - com.
azure. ai. formrecognizer. FormRecognizerAsyncClient
- com.
public final class FormRecognizerAsyncClient
Cette classe fournit un client asynchrone pour se connecter au Form Recognizer Azure Cognitive Service.
Ce client fournit des méthodes asynchrones pour effectuer les opérations suivantes :
- Analyse de formulaire personnalisée : extraction et analyse de données à partir de formulaires et de documents spécifiques à des données métier et à des cas d’usage distincts. Utilisez le modèle entraîné personnalisé en passant son modelId dans la beginRecognizeCustomForms méthode .
- Analyse des modèles prédéfinis : analysez les reçus, les cartes de visite, les factures et d’autres documents avec des modèles prédéfinis pris en charge Utilisez la méthode pour reconnaître les beginRecognizeReceipts informations de reçu.
- Analyse de la disposition : extraction et analyse du texte, des marques de sélection, des tableaux et des coordonnées de zone englobante, à partir de formulaires et de documents. Utilisez la beginRecognizeContent méthode tpo effectuer une analyse de disposition.
- Interrogation et rappels : il comprend des mécanismes permettant d’interroger le service pour case activée la status d’une opération d’analyse ou d’inscrire des rappels pour recevoir des notifications une fois l’analyse terminée.
Note: Ce client prend uniquement en charge V2_1 et inférieur. Recommandé d’utiliser une version de service plus récente, DocumentAnalysisClient et DocumentModelAdministrationClient.
Reportez-vous au Guide de migration pour utiliser les versions d’API 2022-08-31 et ultérieures.
Les clients de service sont le point d’interaction permettant aux développeurs d’utiliser Azure Form Recognizer. FormRecognizerClient est le client de service synchrone et FormRecognizerAsyncClient est le client de service asynchrone. Les exemples présentés dans ce document utilisent un objet d’informations d’identification nommé DefaultAzureCredential pour l’authentification, ce qui est approprié pour la plupart des scénarios, y compris les environnements de développement et de production locaux. En outre, nous vous recommandons d’utiliser l’identité managée pour l’authentification dans les environnements de production. Vous trouverez plus d’informations sur les différentes méthodes d’authentification et leurs types d’informations d’identification correspondants dans la documentation Azure Identity .
Exemple : Construire un FormRecognizerClient avec DefaultAzureCredential
L’exemple de code suivant illustre la création d’un FormRecognizerAsyncClient, à l’aide de « DefaultAzureCredentialBuilder » pour le configurer.
FormRecognizerAsyncClient formRecognizerAsyncClient = new FormRecognizerClientBuilder()
.endpoint("{endpoint}")
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
En outre, consultez l’exemple de code ci-dessous à utiliser pour la AzureKeyCredential création du client.
FormRecognizerAsyncClient formRecognizerAsyncClient = new FormRecognizerClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("{endpoint}")
.buildAsyncClient();
Résumé de la méthode
Modificateur et type | Méthode et description |
---|---|
Poller |
beginRecognizeBusinessCards(Flux<ByteBuffer> businessCard, long length)
Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini. |
Poller |
beginRecognizeBusinessCards(Flux<ByteBuffer> businessCard, long length, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions)
Reconnaît les données de carte métier à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’entreprise prédéfini carte entraîné. |
Poller |
beginRecognizeBusinessCardsFromUrl(String businessCardUrl)
Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini. |
Poller |
beginRecognizeBusinessCardsFromUrl(String businessCardUrl, RecognizeBusinessCardsOptions recognizeBusinessCardsOptions)
Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini. |
Poller |
beginRecognizeContent(Flux<ByteBuffer> form, long length)
Reconnaît les données de contenu/disposition à l’aide de la reconnaissance optique de caractères (OCR). |
Poller |
beginRecognizeContent(Flux<ByteBuffer> form, long length, RecognizeContentOptions recognizeContentOptions)
Reconnaît les données de contenu/disposition à l’aide de la reconnaissance optique de caractères (OCR). |
Poller |
beginRecognizeContentFromUrl(String formUrl)
Reconnaît les données de contenu/disposition des documents à l’aide de la reconnaissance optique de caractères (OCR). |
Poller |
beginRecognizeContentFromUrl(String formUrl, RecognizeContentOptions recognizeContentOptions)
Reconnaît les données de disposition à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé. |
Poller |
beginRecognizeCustomForms(String modelId, Flux<ByteBuffer> form, long length)
Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes. |
Poller |
beginRecognizeCustomForms(String modelId, Flux<ByteBuffer> form, long length, RecognizeCustomFormsOptions recognizeCustomFormsOptions)
Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes. |
Poller |
beginRecognizeCustomFormsFromUrl(String modelId, String formUrl)
Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes. |
Poller |
beginRecognizeCustomFormsFromUrl(String modelId, String formUrl, RecognizeCustomFormsOptions recognizeCustomFormsOptions)
Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé. |
Poller |
beginRecognizeIdentityDocuments(Flux<ByteBuffer> identityDocument, long length)
Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. |
Poller |
beginRecognizeIdentityDocuments(Flux<ByteBuffer> identityDocument, long length, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions)
Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. |
Poller |
beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl)
Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. |
Poller |
beginRecognizeIdentityDocumentsFromUrl(String identityDocumentUrl, RecognizeIdentityDocumentOptions recognizeIdentityDocumentOptions)
Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. |
Poller |
beginRecognizeInvoices(Flux<ByteBuffer> invoice, long length)
Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini. |
Poller |
beginRecognizeInvoices(Flux<ByteBuffer> invoice, long length, RecognizeInvoicesOptions recognizeInvoicesOptions)
Reconnaît les données de facture à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini. |
Poller |
beginRecognizeInvoicesFromUrl(String invoiceUrl)
Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini. |
Poller |
beginRecognizeInvoicesFromUrl(String invoiceUrl, RecognizeInvoicesOptions recognizeInvoicesOptions)
Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini. |
Poller |
beginRecognizeReceipts(Flux<ByteBuffer> receipt, long length)
Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus. |
Poller |
beginRecognizeReceipts(Flux<ByteBuffer> receipt, long length, RecognizeReceiptsOptions recognizeReceiptsOptions)
Reconnaît les données de réception des documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage du reçu. |
Poller |
beginRecognizeReceiptsFromUrl(String receiptUrl)
Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus. |
Poller |
beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeReceiptsOptions recognizeReceiptsOptions)
Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus. |
Méthodes héritées de java.lang.Object
Détails de la méthode
beginRecognizeBusinessCards
public PollerFlux<>
Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur un carte d’entreprise. Notez que le businessCard
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
File businessCard = new File("{local/file_path/fileName.jpg}");
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(businessCard.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeBusinessCards(buffer, businessCard.length())
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedBusinessCards -> {
for (int i = 0; i < recognizedBusinessCards.size(); i++) {
RecognizedForm recognizedForm = recognizedBusinessCards.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized Business Card page %d -----------%n", i);
FormField contactNamesFormField = recognizedFields.get("ContactNames");
if (contactNamesFormField != null) {
if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
contactNamesList.stream()
.filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
.map(contactName -> {
System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
return contactName.getValue().asMap();
})
.forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
if ("FirstName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String firstName = contactName.getValue().asString();
System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
firstName, contactName.getConfidence());
}
}
if ("LastName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String lastName = contactName.getValue().asString();
System.out.printf("\tLast Name: %s, confidence: %.2f%n",
lastName, contactName.getConfidence());
}
}
}));
}
}
FormField jobTitles = recognizedFields.get("JobTitles");
if (jobTitles != null) {
if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
List<FormField> jobTitlesItems = jobTitles.getValue().asList();
jobTitlesItems.forEach(jobTitlesItem -> {
if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
String jobTitle = jobTitlesItem.getValue().asString();
System.out.printf("Job Title: %s, confidence: %.2f%n",
jobTitle, jobTitlesItem.getConfidence());
}
});
}
}
}
});
Parameters:
Returns:
beginRecognizeBusinessCards
public PollerFlux<>
Reconnaît les données de carte métier à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’entreprise prédéfini carte entraîné.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur un carte d’entreprise. Notez que le businessCard
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
File businessCard = new File("{local/file_path/fileName.jpg}");
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(businessCard.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeBusinessCards(buffer, businessCard.length(),
new RecognizeBusinessCardsOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedBusinessCards -> {
for (int i = 0; i < recognizedBusinessCards.size(); i++) {
RecognizedForm recognizedForm = recognizedBusinessCards.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized Business Card page %d -----------%n", i);
FormField contactNamesFormField = recognizedFields.get("ContactNames");
if (contactNamesFormField != null) {
if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
contactNamesList.stream()
.filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
.map(contactName -> {
System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
return contactName.getValue().asMap();
})
.forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
if ("FirstName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String firstName = contactName.getValue().asString();
System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
firstName, contactName.getConfidence());
}
}
if ("LastName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String lastName = contactName.getValue().asString();
System.out.printf("\tLast Name: %s, confidence: %.2f%n",
lastName, contactName.getConfidence());
}
}
}));
}
}
FormField jobTitles = recognizedFields.get("JobTitles");
if (jobTitles != null) {
if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
List<FormField> jobTitlesItems = jobTitles.getValue().asList();
jobTitlesItems.forEach(jobTitlesItem -> {
if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
String jobTitle = jobTitlesItem.getValue().asString();
System.out.printf("Job Title: %s, confidence: %.2f%n",
jobTitle, jobTitlesItem.getConfidence());
}
});
}
}
}
});
Parameters:
Returns:
beginRecognizeBusinessCardsFromUrl
public PollerFlux<>
Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur un carte d’entreprise.
Code sample
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeBusinessCardsFromUrl
public PollerFlux<>
Reconnaît les données de carte métier à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle d’carte métier prédéfini.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur un carte d’entreprise.
Code sample
String businessCardUrl = "{business_card_url}";
boolean includeFieldElements = true;
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeBusinessCardsFromUrl(businessCardUrl,
new RecognizeBusinessCardsOptions()
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedBusinessCards -> {
for (int i = 0; i < recognizedBusinessCards.size(); i++) {
RecognizedForm recognizedBusinessCard = recognizedBusinessCards.get(i);
Map<String, FormField> recognizedFields = recognizedBusinessCard.getFields();
System.out.printf("----------- Recognized Business Card page %d -----------%n", i);
FormField contactNamesFormField = recognizedFields.get("ContactNames");
if (contactNamesFormField != null) {
if (FieldValueType.LIST == contactNamesFormField.getValue().getValueType()) {
List<FormField> contactNamesList = contactNamesFormField.getValue().asList();
contactNamesList.stream()
.filter(contactName -> FieldValueType.MAP == contactName.getValue().getValueType())
.map(contactName -> {
System.out.printf("Contact name: %s%n", contactName.getValueData().getText());
return contactName.getValue().asMap();
})
.forEach(contactNamesMap -> contactNamesMap.forEach((key, contactName) -> {
if ("FirstName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String firstName = contactName.getValue().asString();
System.out.printf("\tFirst Name: %s, confidence: %.2f%n",
firstName, contactName.getConfidence());
}
}
if ("LastName".equals(key)) {
if (FieldValueType.STRING == contactName.getValue().getValueType()) {
String lastName = contactName.getValue().asString();
System.out.printf("\tLast Name: %s, confidence: %.2f%n",
lastName, contactName.getConfidence());
}
}
}));
}
}
FormField jobTitles = recognizedFields.get("JobTitles");
if (jobTitles != null) {
if (FieldValueType.LIST == jobTitles.getValue().getValueType()) {
List<FormField> jobTitlesItems = jobTitles.getValue().asList();
jobTitlesItems.forEach(jobTitlesItem -> {
if (FieldValueType.STRING == jobTitlesItem.getValue().getValueType()) {
String jobTitle = jobTitlesItem.getValue().asString();
System.out.printf("Job Title: %s, confidence: %.2f%n",
jobTitle, jobTitlesItem.getConfidence());
}
});
}
}
}
});
Parameters:
Returns:
beginRecognizeContent
public PollerFlux<>
Reconnaît les données de contenu/disposition à l’aide de la reconnaissance optique de caractères (OCR).
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Notez que le data
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
File form = new File("{local/file_path/fileName.jpg}");
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(form.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeContent(buffer, form.length())
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(formPage -> {
System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
// Table information
System.out.println("Recognized Tables: ");
formPage.getTables().forEach(formTable ->
formTable.getCells().forEach(recognizedTableCell ->
System.out.printf("%s ", recognizedTableCell.getText())));
});
Parameters:
Returns:
beginRecognizeContent
public PollerFlux<>
Reconnaît les données de contenu/disposition à l’aide de la reconnaissance optique de caractères (OCR).
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Notez que le data
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
La reconnaissance de contenu prend en charge l’identification automatique de la langue et les documents multilingues. Par conséquent, fournissez un code de langue uniquement si vous souhaitez forcer le traitement du document en tant que langue spécifique dans .RecognizeContentOptions
Code sample
File form = new File("{local/file_path/fileName.jpg}");
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(form.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeContent(buffer, form.length(),
new RecognizeContentOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setPollInterval(Duration.ofSeconds(5)))
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(formPage -> {
System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
// Table information
System.out.println("Recognized Tables: ");
formPage.getTables().forEach(formTable -> formTable.getCells().forEach(recognizedTableCell ->
System.out.printf("%s ", recognizedTableCell.getText())));
});
Parameters:
Returns:
beginRecognizeContentFromUrl
public PollerFlux<>
Reconnaît les données de contenu/disposition des documents à l’aide de la reconnaissance optique de caractères (OCR).
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String formUrl = "{formUrl}";
formRecognizerAsyncClient.beginRecognizeContentFromUrl(formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(formPage -> {
System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
// Table information
System.out.println("Recognized Tables: ");
formPage.getTables().forEach(formTable ->
formTable.getCells().forEach(recognizedTableCell ->
System.out.printf("%s ", recognizedTableCell.getText())));
});
Parameters:
Returns:
beginRecognizeContentFromUrl
public PollerFlux<>
Reconnaît les données de disposition à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
La reconnaissance de contenu prend en charge l’identification automatique de la langue et les documents multilingues. Par conséquent, fournissez un code de langue uniquement si vous souhaitez forcer le traitement du document en tant que langue spécifique dans .RecognizeContentOptions
Code sample
String formUrl = "{formUrl}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeContentFromUrl(formUrl,
new RecognizeContentOptions().setPollInterval(Duration.ofSeconds(5)))
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(formPage -> {
System.out.printf("Page Angle: %s%n", formPage.getTextAngle());
System.out.printf("Page Dimension unit: %s%n", formPage.getUnit());
// Table information
System.out.println("Recognized Tables: ");
formPage.getTables().forEach(formTable ->
formTable.getCells().forEach(recognizedTableCell ->
System.out.printf("%s ", recognizedTableCell.getText())));
});
Parameters:
Returns:
beginRecognizeCustomForms
public PollerFlux<>
Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Notez que le data
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
File form = new File("{local/file_path/fileName.jpg}");
String modelId = "{custom_trained_model_id}";
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(form.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomForms(modelId, buffer, form.length())
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeCustomForms
public PollerFlux<>
Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Notez que le data
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
File form = new File("{local/file_path/fileName.jpg}");
String modelId = "{custom_trained_model_id}";
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer = toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(form.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomForms(modelId, buffer, form.length(),
new RecognizeCustomFormsOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements)
.setPollInterval(Duration.ofSeconds(5)))
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldName, formField) -> {
System.out.printf("Field text: %s%n", fieldName);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeCustomFormsFromUrl
public PollerFlux<>
Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé avec ou sans étiquettes.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeCustomFormsFromUrl
public PollerFlux<>
Reconnaît les données de formulaire à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle entraîné personnalisé.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String formUrl = "{formUrl}";
String modelId = "{model_id}";
boolean includeFieldElements = true;
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl,
new RecognizeCustomFormsOptions()
.setFieldElementsIncluded(includeFieldElements)
.setPollInterval(Duration.ofSeconds(10)))
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeIdentityDocuments
public PollerFlux<>
Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. Consultez ici les champs trouvés dans un document d’identité.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Notez que le identityDocument
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
File license = new File("local/file_path/license.jpg");
Flux<ByteBuffer> buffer =
toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(license.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeIdentityDocuments(buffer, license.length())
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedIDDocumentResult -> {
for (int i = 0; i < recognizedIDDocumentResult.size(); i++) {
RecognizedForm recognizedForm = recognizedIDDocumentResult.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized license info for page %d -----------%n", i);
FormField firstNameField = recognizedFields.get("FirstName");
if (firstNameField != null) {
if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
String firstName = firstNameField.getValue().asString();
System.out.printf("First Name: %s, confidence: %.2f%n",
firstName, firstNameField.getConfidence());
}
}
FormField lastNameField = recognizedFields.get("LastName");
if (lastNameField != null) {
if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
String lastName = lastNameField.getValue().asString();
System.out.printf("Last name: %s, confidence: %.2f%n",
lastName, lastNameField.getConfidence());
}
}
FormField countryRegionFormField = recognizedFields.get("CountryRegion");
if (countryRegionFormField != null) {
if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
String countryRegion = countryRegionFormField.getValue().asCountryRegion();
System.out.printf("Country or region: %s, confidence: %.2f%n",
countryRegion, countryRegionFormField.getConfidence());
}
}
FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
if (dateOfExpirationField != null) {
if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
expirationDate, dateOfExpirationField.getConfidence());
}
}
FormField documentNumberField = recognizedFields.get("DocumentNumber");
if (documentNumberField != null) {
if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
String documentNumber = documentNumberField.getValue().asString();
System.out.printf("Document number: %s, confidence: %.2f%n",
documentNumber, documentNumberField.getConfidence());
}
}
}
});
Parameters:
Returns:
beginRecognizeIdentityDocuments
public PollerFlux<>
Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. Consultez ici les champs trouvés dans un document d’identité.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Notez que le identityDocument
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
File licenseDocument = new File("local/file_path/license.jpg");
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer =
toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(licenseDocument.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeIdentityDocuments(buffer,
licenseDocument.length(),
new RecognizeIdentityDocumentOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedIDDocumentResult -> {
for (int i = 0; i < recognizedIDDocumentResult.size(); i++) {
RecognizedForm recognizedForm = recognizedIDDocumentResult.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized license info for page %d -----------%n", i);
FormField firstNameField = recognizedFields.get("FirstName");
if (firstNameField != null) {
if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
String firstName = firstNameField.getValue().asString();
System.out.printf("First Name: %s, confidence: %.2f%n",
firstName, firstNameField.getConfidence());
}
}
FormField lastNameField = recognizedFields.get("LastName");
if (lastNameField != null) {
if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
String lastName = lastNameField.getValue().asString();
System.out.printf("Last name: %s, confidence: %.2f%n",
lastName, lastNameField.getConfidence());
}
}
FormField countryRegionFormField = recognizedFields.get("CountryRegion");
if (countryRegionFormField != null) {
if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
String countryRegion = countryRegionFormField.getValue().asCountryRegion();
System.out.printf("Country or region: %s, confidence: %.2f%n",
countryRegion, countryRegionFormField.getConfidence());
}
}
FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
if (dateOfExpirationField != null) {
if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
expirationDate, dateOfExpirationField.getConfidence());
}
}
FormField documentNumberField = recognizedFields.get("DocumentNumber");
if (documentNumberField != null) {
if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
String documentNumber = documentNumberField.getValue().asString();
System.out.printf("Document number: %s, confidence: %.2f%n",
documentNumber, documentNumberField.getConfidence());
}
}
}
});
Parameters:
Returns:
beginRecognizeIdentityDocumentsFromUrl
public PollerFlux<>
Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. Consultez ici les champs trouvés dans un document d’identité.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String idDocumentUrl = "idDocumentUrl";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeIdentityDocumentsFromUrl(idDocumentUrl)
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedIDDocumentResult -> {
for (int i = 0; i < recognizedIDDocumentResult.size(); i++) {
RecognizedForm recognizedForm = recognizedIDDocumentResult.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized license info for page %d -----------%n", i);
FormField firstNameField = recognizedFields.get("FirstName");
if (firstNameField != null) {
if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
String firstName = firstNameField.getValue().asString();
System.out.printf("First Name: %s, confidence: %.2f%n",
firstName, firstNameField.getConfidence());
}
}
FormField lastNameField = recognizedFields.get("LastName");
if (lastNameField != null) {
if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
String lastName = lastNameField.getValue().asString();
System.out.printf("Last name: %s, confidence: %.2f%n",
lastName, lastNameField.getConfidence());
}
}
FormField countryRegionFormField = recognizedFields.get("CountryRegion");
if (countryRegionFormField != null) {
if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
String countryRegion = countryRegionFormField.getValue().asCountryRegion();
System.out.printf("Country or region: %s, confidence: %.2f%n",
countryRegion, countryRegionFormField.getConfidence());
}
}
FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
if (dateOfExpirationField != null) {
if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
expirationDate, dateOfExpirationField.getConfidence());
}
}
FormField documentNumberField = recognizedFields.get("DocumentNumber");
if (documentNumberField != null) {
if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
String documentNumber = documentNumberField.getValue().asString();
System.out.printf("Document number: %s, confidence: %.2f%n",
documentNumber, documentNumberField.getConfidence());
}
}
}
});
Parameters:
Returns:
beginRecognizeIdentityDocumentsFromUrl
public PollerFlux<>
Analysez les documents d’identité à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini formé sur le modèle de documents d’identité pour extraire des informations clés des passeports et des permis de conduire américains. Consultez ici les champs trouvés dans un document d’identité.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String licenseDocumentUrl = "licenseDocumentUrl";
boolean includeFieldElements = true;
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeIdentityDocumentsFromUrl(licenseDocumentUrl,
new RecognizeIdentityDocumentOptions()
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedIDDocumentResult -> {
for (int i = 0; i < recognizedIDDocumentResult.size(); i++) {
RecognizedForm recognizedForm = recognizedIDDocumentResult.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
System.out.printf("----------- Recognized license info for page %d -----------%n", i);
FormField firstNameField = recognizedFields.get("FirstName");
if (firstNameField != null) {
if (FieldValueType.STRING == firstNameField.getValue().getValueType()) {
String firstName = firstNameField.getValue().asString();
System.out.printf("First Name: %s, confidence: %.2f%n",
firstName, firstNameField.getConfidence());
}
}
FormField lastNameField = recognizedFields.get("LastName");
if (lastNameField != null) {
if (FieldValueType.STRING == lastNameField.getValue().getValueType()) {
String lastName = lastNameField.getValue().asString();
System.out.printf("Last name: %s, confidence: %.2f%n",
lastName, lastNameField.getConfidence());
}
}
FormField countryRegionFormField = recognizedFields.get("CountryRegion");
if (countryRegionFormField != null) {
if (FieldValueType.STRING == countryRegionFormField.getValue().getValueType()) {
String countryRegion = countryRegionFormField.getValue().asCountryRegion();
System.out.printf("Country or region: %s, confidence: %.2f%n",
countryRegion, countryRegionFormField.getConfidence());
}
}
FormField dateOfExpirationField = recognizedFields.get("DateOfExpiration");
if (dateOfExpirationField != null) {
if (FieldValueType.DATE == dateOfExpirationField.getValue().getValueType()) {
LocalDate expirationDate = dateOfExpirationField.getValue().asDate();
System.out.printf("Document date of expiration: %s, confidence: %.2f%n",
expirationDate, dateOfExpirationField.getConfidence());
}
}
FormField documentNumberField = recognizedFields.get("DocumentNumber");
if (documentNumberField != null) {
if (FieldValueType.STRING == documentNumberField.getValue().getValueType()) {
String documentNumber = documentNumberField.getValue().asString();
System.out.printf("Document number: %s, confidence: %.2f%n",
documentNumber, documentNumberField.getConfidence());
}
}
}
});
Parameters:
Returns:
beginRecognizeInvoices
public PollerFlux<>
Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur une facture. Notez que le invoice
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
File invoice = new File("local/file_path/invoice.jpg");
Flux<ByteBuffer> buffer =
toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(invoice.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeInvoices(buffer, invoice.length())
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedInvoices -> {
for (int i = 0; i < recognizedInvoices.size(); i++) {
RecognizedForm recognizedForm = recognizedInvoices.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
FormField customAddrFormField = recognizedFields.get("CustomerAddress");
if (customAddrFormField != null) {
if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
}
}
FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
if (invoiceDateFormField != null) {
if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
System.out.printf("Invoice Date: %s, confidence: %.2f%n",
invoiceDate, invoiceDateFormField.getConfidence());
}
}
}
});
Parameters:
Returns:
beginRecognizeInvoices
public PollerFlux<>
Reconnaît les données de facture à partir de documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur une facture. Notez que le invoice
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
File invoice = new File("local/file_path/invoice.jpg");
boolean includeFieldElements = true;
// Utility method to convert input stream to Byte buffer
Flux<ByteBuffer> buffer =
toFluxByteBuffer(new ByteArrayInputStream(Files.readAllBytes(invoice.toPath())));
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeInvoices(buffer,
invoice.length(),
new RecognizeInvoicesOptions()
.setContentType(FormContentType.IMAGE_JPEG)
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedInvoices -> {
for (int i = 0; i < recognizedInvoices.size(); i++) {
RecognizedForm recognizedForm = recognizedInvoices.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
FormField customAddrFormField = recognizedFields.get("CustomerAddress");
if (customAddrFormField != null) {
if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
}
}
FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
if (invoiceDateFormField != null) {
if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
System.out.printf("Invoice Date: %s, confidence: %.2f%n",
invoiceDate, invoiceDateFormField.getConfidence());
}
}
}
});
Parameters:
Returns:
beginRecognizeInvoicesFromUrl
public PollerFlux<>
Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur une facture.
Code sample
String invoiceUrl = "invoice_url";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeInvoicesFromUrl(invoiceUrl)
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedInvoices -> {
for (int i = 0; i < recognizedInvoices.size(); i++) {
RecognizedForm recognizedForm = recognizedInvoices.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
FormField customAddrFormField = recognizedFields.get("CustomerAddress");
if (customAddrFormField != null) {
if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
}
}
FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
if (invoiceDateFormField != null) {
if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
System.out.printf("Invoice Date: %s, confidence: %.2f%n",
invoiceDate, invoiceDateFormField.getConfidence());
}
}
}
});
Parameters:
Returns:
beginRecognizeInvoicesFromUrl
public PollerFlux<>
Reconnaît les données de facture à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle de facture prédéfini.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String invoiceUrl = "invoice_url";
boolean includeFieldElements = true;
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeInvoicesFromUrl(invoiceUrl,
new RecognizeInvoicesOptions()
.setFieldElementsIncluded(includeFieldElements))
.setPollInterval(Duration.ofSeconds(5))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(recognizedInvoices -> {
for (int i = 0; i < recognizedInvoices.size(); i++) {
RecognizedForm recognizedForm = recognizedInvoices.get(i);
Map<String, FormField> recognizedFields = recognizedForm.getFields();
FormField customAddrFormField = recognizedFields.get("CustomerAddress");
if (customAddrFormField != null) {
if (FieldValueType.STRING == customAddrFormField.getValue().getValueType()) {
System.out.printf("Customer Address: %s%n", customAddrFormField.getValue().asString());
}
}
FormField invoiceDateFormField = recognizedFields.get("InvoiceDate");
if (invoiceDateFormField != null) {
if (FieldValueType.DATE == invoiceDateFormField.getValue().getValueType()) {
LocalDate invoiceDate = invoiceDateFormField.getValue().asDate();
System.out.printf("Invoice Date: %s, confidence: %.2f%n",
invoiceDate, invoiceDateFormField.getConfidence());
}
}
}
});
Parameters:
Returns:
beginRecognizeReceipts
public PollerFlux<>
Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur un reçu. Notez que le receipt
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeReceipts
public PollerFlux<>
Reconnaît les données de réception des documents à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage du reçu.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur un reçu. Notez que le receipt
passé doit être rejouable si les nouvelles tentatives sont activées (valeur par défaut). En d’autres termes, le Flux
doit produire les mêmes données chaque fois qu’il est abonné.
Code sample
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeReceiptsFromUrl
public PollerFlux<>
Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Consultez ici les champs trouvés sur un reçu.
Code sample
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
beginRecognizeReceiptsFromUrl
public PollerFlux<>
Reconnaît les données de reçu à l’aide de la reconnaissance optique de caractères (OCR) et d’un modèle prédéfini d’apprentissage des reçus.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String formUrl = "{form_url}";
String modelId = "{custom_trained_model_id}";
// if training polling operation completed, retrieve the final result.
formRecognizerAsyncClient.beginRecognizeCustomFormsFromUrl(modelId, formUrl)
// if training polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.flatMap(Flux::fromIterable)
.subscribe(recognizedForm -> recognizedForm.getFields()
.forEach((fieldText, formField) -> {
System.out.printf("Field text: %s%n", fieldText);
System.out.printf("Field value data text: %s%n", formField.getValueData().getText());
System.out.printf("Confidence score: %.2f%n", formField.getConfidence());
}));
Parameters:
Returns:
S’applique à
Azure SDK for Java
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour