public bool ProcessMap(FilePath file, StringBuilder sb)
        {
            var tempPath = TempDirectoryPath + "temp.tiff";

            using (var image = ImageProcessingHelper.GetCroppedMap(file))
                image.Save(tempPath);

            OcrResult pendingMatchResult;

            try
            {
                pendingMatchResult = _engine.ProcessOcr(tempPath, OcrEngine.CandidateMaps);
            }
            catch (Exception)
            {
                return(false);
            }

            if (!pendingMatchResult.Results.Any() || !pendingMatchResult.Values.First().Trustable)
            {
                return(false);
            }

            if (OcrEngine.Debug)
            {
                var i    = 0;
                var path = TempDirectoryPath + pendingMatchResult.Values.First().Value + ".tiff";
                while (File.Exists(path))
                {
                    ++i;
                    path = TempDirectoryPath + pendingMatchResult.Values.First().Value + i + ".tiff";
                }

                if (OcrEngine.Delete)
                {
                    File.Move(file, path);
                }
                else
                {
                    File.Copy(file, path, true);
                }
            }

            if (!OcrEngine.Debug && OcrEngine.Delete)
            {
                file.DeleteIfExists();
            }

            sb.Append(pendingMatchResult.Values.First().Value);
            return(pendingMatchResult.Values.First().FullyTrustable);
        }