Contains the properties of a text character found in the page.
[SerializableAttribute()]
[DataContractAttribute()]
public struct DocumentCharacter
public [SerializableAttribute,
DataContractAttribute]
value class DocumentCharacter sealed
public class DocumentCharacter implements Serializable
class DocumentCharacter:
The DocumentCharacter structure is used as the type for the Characters list.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Document.Writer;
using Leadtools.Document;
using Leadtools.Caching;
using Leadtools.Annotations.Engine;
using Leadtools.Ocr;
using Leadtools.Barcode;
using Leadtools.Document.Converter;
public void StoreOcrPageCharactersExample()
{
// Initialize an OCR engine
IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD);
// Start the engine using default parameters
ocrEngine.Startup(null, null, null, @"C:\LEADTOOLS22\Bin\Common\OcrLEADRuntime");
// Load a document that we know will be OCRed
string documentFile = @"C:\LEADTOOLS22\Resources\Images\ocr1.tif";
using (LEADDocument document = DocumentFactory.LoadFromFile(documentFile, new LoadDocumentOptions()))
{
// Set the OCR engine
document.Text.OcrEngine = ocrEngine;
// First, do not store IOcrPageCharacters in DocumentPageText, this will
// cause our code to extract the character OCR confidences value to not work
document.Text.StoreOcrPageCharacters = false;
Console.WriteLine("Obtaining OCR characters confidence with StoreOcrPageCharacters equals to false. Should fail");
// Now get the text
DocumentPage documentPage = document.Pages[0];
DocumentPageText documentPageText = documentPage.GetText();
// Build the words
documentPageText.BuildWords();
ShowOcrConfidence(documentPageText);
Console.WriteLine("Obtaining OCR characters confidence with StoreOcrPageCharacters equals to true. Should work");
document.Text.StoreOcrPageCharacters = true;
documentPageText = documentPage.GetText();
// Build the words
documentPageText.BuildWords();
ShowOcrConfidence(documentPageText);
}
ocrEngine.Dispose();
}
private static void ShowOcrConfidence(DocumentPageText documentPageText)
{
Console.WriteLine("Showing OCR confidence value of the characters of the first word");
if (documentPageText.Words == null)
{
Console.WriteLine("Nothing to show");
return;
}
// Show the OCR character confidence for the first word
// Get the first word
DocumentWord word = documentPageText.Words[0];
Console.WriteLine($"first word value:{word.Value}");
// Get its characters
for (int characterIndex = word.FirstCharacterIndex; characterIndex <= word.LastCharacterIndex; characterIndex++)
{
// DocumentCharacter reference
DocumentCharacter documentCharacter = documentPageText.Characters[characterIndex];
Console.WriteLine($" character at index {characterIndex} is {documentCharacter.Code} its isFromOcr value is {documentCharacter.IsFromOcr} and its bounds are {documentCharacter.Bounds}");
Console.WriteLine($"Is end of line: {documentCharacter.IsEndOfLine}");
Console.WriteLine($"Is end of word: {documentCharacter.IsEndOfWord}");
Console.WriteLine($"Is right to left: {documentCharacter.IsRightToLeft}");
// Ensure this is a character obtained from OCR
if (documentCharacter.IsFromOcr)
{
// See if we stored the IOcrPageCharacters in
if (documentPageText.OcrPageCharacters != null)
{
// We have it, get the corresponding OcrCharcater
// Get the zone characters
IOcrZoneCharacters ocrZoneCharacters = documentPageText.OcrPageCharacters[documentCharacter.OcrZoneIndex];
// And the character in this zone
OcrCharacter ocrCharacter = ocrZoneCharacters[documentCharacter.OcrCharacterIndex];
int confidence = ocrCharacter.Confidence;
Console.WriteLine($" OCR character code is {ocrCharacter.Code} and confidence is {confidence}");
// Sanity check
Debug.Assert(ocrCharacter.Code == documentCharacter.Code);
}
else
{
Console.WriteLine(" Failed to get OCR confidence");
}
}
}
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document