Fixed MSWord Symbol fonts

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

View File

@ -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]+");
/// <summary>
/// FixSymbolCharacters - Fix any symbol characters in the document
/// </summary>
@ -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;
}
}