diff --git a/PROMS/LBWordLibrary/LBObjectExtension.cs b/PROMS/LBWordLibrary/LBObjectExtension.cs index f28f7c48..b9cb77e2 100644 --- a/PROMS/LBWordLibrary/LBObjectExtension.cs +++ b/PROMS/LBWordLibrary/LBObjectExtension.cs @@ -314,7 +314,7 @@ namespace LBWordLibrary foreach (Match problem in problems) { if (!alreadyProcessed.Contains(problem.Value)) - { + { myRange.Start = problem.Index + offset; myRange.End = problem.Index + problem.Length + offset; int newOffset = FindRangeOffset(myRange, problem, offset, end); @@ -324,6 +324,7 @@ namespace LBWordLibrary if( !fontHasSymbols.Contains(fontName)) { fontHasSymbols.Add(fontName); + // Found symbol font _MyLog.InfoFormat("Font '{0}' has Symbols", fontName); } //Console.WriteLine("Font '{0}' has Symbols", myRange.Font.Name); @@ -471,7 +472,7 @@ namespace LBWordLibrary return false; } } - Regex _RegFindSymbol = new Regex("[\\uF000-\\uF0FF]+"); + Regex _RegFindSymbol = new Regex("[\\uF020-\\uF07F]+"); /// /// FixSymbolCharacters - Fix any symbol characters in the document /// @@ -490,7 +491,28 @@ namespace LBWordLibrary myRange.Start = problem.Index + offset; myRange.End = problem.Index + problem.Length + offset; int newOffset = FindRangeOffset(myRange, problem, offset, end); - ReplaceSymbolCharacters(myRange); + if (myRange.Font.Name == "") + { + int wrdStart = myRange.Start; + int wrdEnd = myRange.End; + int wrdMiddle = wrdStart; + while (myRange.Font.Name == "") + { + do + { + myRange.End = ++wrdMiddle; + } while(myRange.Font.Name != ""); + myRange.End = wrdMiddle - 1; + ReplaceSymbolCharacters(myRange); + myRange.Start = wrdMiddle -1; + myRange.End = wrdEnd; + } + ReplaceSymbolCharacters(myRange); + } + else + { + ReplaceSymbolCharacters(myRange); + } offset = newOffset; } }