// For complete examples and data files, please go to https://github.com/groupdocs-annotation/GroupDocs.Annotation-for-.NET
/// <summary>
/// Gets text coordinates in image representation of document
/// </summary>
/// <param name="filePath">Source file path</param>
public static void GetTextCoordinates(string filePath)
{
try
{
// Set configuration
AnnotationConfig cfg = GetConfiguration();
// Initialize annotator
AnnotationImageHandler annotator = new AnnotationImageHandler(cfg);
try
{
annotator.CreateDocument(filePath);
}
catch { }
var documentInfoContainer = annotator.GetDocumentInfo(filePath);
// Go through all pages
foreach (PageData pageData in documentInfoContainer.Pages)
{
Console.WriteLine("Page number: " + pageData.Number);
//Go through all page rows
for (int i = 0; i < pageData.Rows.Count; i++)
{
RowData rowData = pageData.Rows[i];
// Write data to console
Console.WriteLine("Row: " + (i + 1));
Console.WriteLine("Text: " + rowData.Text);
Console.WriteLine("Text width: " + rowData.LineWidth);
Console.WriteLine("Text height: " + rowData.LineHeight);
Console.WriteLine("Distance from left: " + rowData.LineLeft);
Console.WriteLine("Distance from top: " + rowData.LineTop);
// Get words
string[] words = rowData.Text.Split(' ');
// Go through all word coordinates
for (int j = 0; j < words.Length; j++)
{
int coordinateIndex = j == 0 ? 0 : j + 1;
// Write data to console
Console.WriteLine(string.Empty);
Console.WriteLine("Word:'" + words[j] + "'");
Console.WriteLine("Word distance from left: " + rowData.TextCoordinates[coordinateIndex]);
Console.WriteLine("Word width: " + rowData.TextCoordinates[coordinateIndex + 1]);
Console.WriteLine(string.Empty);
}
Console.ReadKey();
}
}
}
catch (System.Exception exp)
{
Console.WriteLine(exp.Message);
}
}