From 6e082b30763403f767166b73045cfdb0efe0ffff Mon Sep 17 00:00:00 2001 From: Rich Date: Wed, 10 Oct 2012 19:10:45 +0000 Subject: [PATCH] Fixed MSWord Symbol fonts --- PROMS/LBWordLibrary/LBObjectExtension.cs | 28 +++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) 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; } }