Added Name property for font

Added logic to keep appropriate symbols in word files
This commit is contained in:
Rich 2010-04-22 17:30:15 +00:00
parent 37688d042f
commit b4cb2a0def
2 changed files with 32 additions and 1 deletions

View File

@ -536,6 +536,11 @@ namespace LBWordLibrary
get { return (GetProperty("Size") as float? ?? 0); } get { return (GetProperty("Size") as float? ?? 0); }
set { SetProperty("Size", value); } set { SetProperty("Size", value); }
} }
public String Name
{
get { return (GetProperty("Name").ToString()); }
set { SetProperty("Name", value); }
}
} }
public enum LBWdInformation public enum LBWdInformation
{ {

View File

@ -285,6 +285,14 @@ namespace LBWordLibrary
return ReplaceSymbolCharacters(GetRangeText(myRange)); return ReplaceSymbolCharacters(GetRangeText(myRange));
} }
} }
private static string[] SymbolFontName = { "VolianDraw", "WingDings" };
private static bool IsSymbolFont(string fontName)
{
foreach (string symbolFont in SymbolFontName)
if (symbolFont.ToUpper() == fontName.ToUpper())
return false;
return true;
}
/// <summary> /// <summary>
/// Checks to see if the document contains symbol characters /// Checks to see if the document contains symbol characters
/// </summary> /// </summary>
@ -296,8 +304,24 @@ namespace LBWordLibrary
LBRange myRange = Range(); LBRange myRange = Range();
myRange = myRange.GoTo(LBWdGoToItem.wdGoToPercent, LBWdGoToDirection.wdGoToLast, 100); myRange = myRange.GoTo(LBWdGoToItem.wdGoToPercent, LBWdGoToDirection.wdGoToLast, 100);
myRange.Start = 0; myRange.Start = 0;
int end = myRange.End;
string myText = GetRangeText(myRange); string myText = GetRangeText(myRange);
return _RegFindSymbol.IsMatch(myText); //return _RegFindSymbol.IsMatch(myText);
MatchCollection problems = _RegFindSymbol.Matches(myText);
int offset = 0;
foreach (Match problem in problems)
{
myRange.Start = problem.Index + offset;
myRange.End = problem.Index + problem.Length + offset;
int newOffset = FindRangeOffset(myRange, problem, offset, end);
if (IsSymbolFont(myRange.Font.Name))
{
Console.WriteLine("Font '{0}' has Symbols", myRange.Font.Name);
return true;
}
offset = newOffset;
}
return false;
} }
} }
Regex _RegFindSymbol = new Regex("[\\uF000-\\uF0FF]+"); Regex _RegFindSymbol = new Regex("[\\uF000-\\uF0FF]+");
@ -383,6 +407,8 @@ namespace LBWordLibrary
{ {
try try
{ {
if (IsSymbolFont(myRange.Font.Name))
return;
string before = GetRangeText(myRange); string before = GetRangeText(myRange);
string updated = ReplaceSymbolCharacters(before); string updated = ReplaceSymbolCharacters(before);
myRange.Text = updated; myRange.Text = updated;