Fixed MSWord Symbol fonts

This commit is contained in:
Rich 2012-10-10 19:10:45 +00:00
parent a1cd388132
commit 6e082b3076

View File

@ -324,6 +324,7 @@ namespace LBWordLibrary
if( !fontHasSymbols.Contains(fontName)) if( !fontHasSymbols.Contains(fontName))
{ {
fontHasSymbols.Add(fontName); fontHasSymbols.Add(fontName);
// Found symbol font
_MyLog.InfoFormat("Font '{0}' has Symbols", fontName); _MyLog.InfoFormat("Font '{0}' has Symbols", fontName);
} }
//Console.WriteLine("Font '{0}' has Symbols", myRange.Font.Name); //Console.WriteLine("Font '{0}' has Symbols", myRange.Font.Name);
@ -471,7 +472,7 @@ namespace LBWordLibrary
return false; return false;
} }
} }
Regex _RegFindSymbol = new Regex("[\\uF000-\\uF0FF]+"); Regex _RegFindSymbol = new Regex("[\\uF020-\\uF07F]+");
/// <summary> /// <summary>
/// FixSymbolCharacters - Fix any symbol characters in the document /// FixSymbolCharacters - Fix any symbol characters in the document
/// </summary> /// </summary>
@ -490,7 +491,28 @@ namespace LBWordLibrary
myRange.Start = problem.Index + offset; myRange.Start = problem.Index + offset;
myRange.End = problem.Index + problem.Length + offset; myRange.End = problem.Index + problem.Length + offset;
int newOffset = FindRangeOffset(myRange, problem, offset, end); int newOffset = FindRangeOffset(myRange, problem, offset, end);
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); ReplaceSymbolCharacters(myRange);
myRange.Start = wrdMiddle -1;
myRange.End = wrdEnd;
}
ReplaceSymbolCharacters(myRange);
}
else
{
ReplaceSymbolCharacters(myRange);
}
offset = newOffset; offset = newOffset;
} }
} }