public static void Main(string[] args) { var testImagePath = "./phototest.tif"; if (args.Length > 0) { testImagePath = args[0]; } try { var logger = new FormattedConsoleLogger(); var resultPrinter = new ResultPrinter(logger); using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default)) { using (var img = Pix.LoadFromFile(testImagePath)) { using (logger.Begin("Process image")) { var i = 1; using (var page = engine.Process(img)) { var text = page.GetText(); logger.Log("Text: {0}", text); logger.Log("Mean confidence: {0}", page.GetMeanConfidence()); using (var iter = page.GetIterator()) { iter.Begin(); do { if (i % 2 == 0) { using (logger.Begin("Line {0}", i)) { do { using (logger.Begin("Word Iteration")) { if (iter.IsAtBeginningOf(PageIteratorLevel.Block)) { logger.Log("New block"); } if (iter.IsAtBeginningOf(PageIteratorLevel.Para)) { logger.Log("New paragraph"); } if (iter.IsAtBeginningOf(PageIteratorLevel.TextLine)) { logger.Log("New line"); } logger.Log("word: " + iter.GetText(PageIteratorLevel.Word)); } } while (iter.Next(PageIteratorLevel.TextLine, PageIteratorLevel.Word)); } } i++; } while (iter.Next(PageIteratorLevel.Para, PageIteratorLevel.TextLine)); } } } } } } catch (Exception e) { Trace.TraceError(e.ToString()); Console.WriteLine("Unexpected Error: " + e.Message); Console.WriteLine("Details: "); Console.WriteLine(e.ToString()); } Console.Write("Press any key to continue . . . "); Console.ReadKey(true); }
public Scope(FormattedConsoleLogger container, int indentLevel) { this.container = container; this.indentLevel = indentLevel; StringBuilder indent = new StringBuilder(); for (int i = 0; i < indentLevel; i++) { indent.Append(Tab); } this.indent = indent.ToString(); }
public ResultPrinter(FormattedConsoleLogger logger) { this.logger = logger; }
public string ScanImage(string dateStamp) { m_logger.Debug("Start: ScanImage()"); string rawText = ""; var imagePath = generateNameGrey(dateStamp); if (System.IO.File.Exists(imagePath)) { try { var logger2 = new FormattedConsoleLogger(); var resultPrinter = new ResultPrinter(logger2); using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default)) // Only digits - It doesn't work properly but we'll leave it here in case we decide to take this way // using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default, "./tessdata/config/onlyDigits.cfg")) { //m_logger.Trace("Tesseract found in {0}", TESSERACT_DATA_PATH); using (var img = Pix.LoadFromFile(imagePath)) { using (logger2.Begin("Process image")) { using (Page page = engine.Process(img)) { rawText = page.GetText(); m_logger.Trace(rawText); m_logger.Trace("Text: {0}", rawText); m_logger.Trace("Mean confidence: {0}", page.GetMeanConfidence()); // Fix Bug when the digit '1' is interpreted as the letter 'l' rawText = rawText.Replace('l', '1'); // Fix Bug when the digit '0' is interpreted as the letter 'O' rawText = rawText.Replace('O', '0'); m_logger.Trace("Text ('l' to 1 and 'O' to 0): {0}", rawText); } } } } } catch (Exception e) { m_logger.Trace("Couldn't find the tesseract data"); Trace.TraceError(e.ToString()); Console.WriteLine("Unexpected Error: " + e.Message); Console.WriteLine("Details: "); Console.WriteLine(e.ToString()); } return rawText; } else { string strError = "ScanImage unable to locate file: " + imagePath + ". Is SurveyCraft visible"; m_logger.Error(strError); m_logger.Info(MailUtils.MailUtils.sendit("*****@*****.**", m_strMachineNumber, strError, m_strDailyLogFilename)); errorPopup("Couldn't capture image", "Is SurveyCraft window the main visible window?"); return null; } }