#include "ltdoc2.h"
L_LTDOC2_API L_INT EXT_FUNCTION L_Doc2GetCharacterChoices(hDoc, nPageIndex, nCharIndex, ppCharChoices, plChoicesCount)
Gets all recognized characters for the specified recognized page.
Handle to the OCR document.
A zero-based index of the recognized page where the character you wish to get its choices are located
A zero-based index of the character to get its choices.
Address of pointer to a L_WCHAR variable to be filled with the list of available character's choices (if any are available). You can define a variable of type L_WCHAR* and pass its address.
Pointer to a variable to be updated with the number of choices available for the specified character index.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
This function obtains a list of recognized alternative characters and ligatures for the specified character index (if any are available).
This function obtains the number of alternative character's choices in plChoicesCount.
✅ IMPORTANT
You must free the memory associated with ppCharChoices parameter when it is no longer needed, by calling the L_Doc2FreeCharacterChoices function.
This function should not be called before calling the L_Doc2GetRecognizedCharacters function.
Required DLLs and Libraries
L_INT Doc2GetCharacterChoicesExample(L_HDOC2 hDoc){L_INT nRet;RECOGNIZEOPTS2 RecogOpts;RecogOpts.uStructSize = sizeof(RECOGNIZEOPTS2);RecogOpts.nPageIndexStart = 0;RecogOpts.nPagesCount = 1;RecogOpts.SpellLangId = DOC2_LANG_ID_ENGLISH;nRet = L_Doc2Recognize (hDoc, &RecogOpts, NULL, NULL);if (nRet == SUCCESS){pRECOGCHARS2 pRecogChars = NULL;L_INT32 lCharsCount = 0;nRet = L_Doc2GetRecognizedCharacters(hDoc, 0, &pRecogChars, &lCharsCount, sizeof(RECOGCHARS2));if (nRet == SUCCESS){for (L_INT32 i=0; i<lCharsCount; i++){L_WCHAR * pCharChoices = NULL;L_INT nChoicesCount = 0;nRet = L_Doc2GetCharacterChoices(hDoc, 0, i, &pCharChoices, &nChoicesCount);if(nRet == SUCCESS && nChoicesCount > 0){L_TCHAR szBuffer[1024];ZeroMemory(szBuffer, sizeof(szBuffer));wsprintf(szBuffer, TEXT("Character Index: %d\nCharacter Code: %s\nChoices Count: %d"), i, pRecogChars[i].wGuessCode, nChoicesCount);MessageBox(NULL, szBuffer, TEXT("Character Choices Count"), MB_OK);L_Doc2FreeCharacterChoices(hDoc, &pCharChoices);}}nRet = L_Doc2FreeRecognizedCharacters(hDoc, &pRecogChars);if(nRet != SUCCESS)return nRet;}}return SUCCESS;}