table font props override
This commit is contained in:
@@ -16,9 +16,9 @@ public record FontProps
|
|||||||
}
|
}
|
||||||
uint? _SizeD;
|
uint? _SizeD;
|
||||||
|
|
||||||
public bool IsItalic { get; init; } = false;
|
public bool? IsItalic { get; init; } = false;
|
||||||
|
|
||||||
public bool IsBold { get; init; } = false;
|
public bool? IsBold { get; init; } = false;
|
||||||
|
|
||||||
public UnderlineValues? Underline { get; init; }
|
public UnderlineValues? Underline { get; init; }
|
||||||
|
|
||||||
@@ -34,23 +34,23 @@ public record FontProps
|
|||||||
if (!string.IsNullOrWhiteSpace(FontFamily))
|
if (!string.IsNullOrWhiteSpace(FontFamily))
|
||||||
list.Add(new RunFonts { Ascii = FontFamily, HighAnsi = FontFamily });
|
list.Add(new RunFonts { Ascii = FontFamily, HighAnsi = FontFamily });
|
||||||
|
|
||||||
if (_SizeD is not null)
|
if (_SizeD is { } sizeD)
|
||||||
list.Add(new FontSize { Val = _SizeD.Value.ToString() });
|
list.Add(new FontSize { Val = sizeD.ToString() });
|
||||||
|
|
||||||
if (IsBold)
|
if (IsBold is { } isBold && isBold)
|
||||||
list.Add(new Bold());
|
list.Add(new Bold());
|
||||||
|
|
||||||
if (IsItalic)
|
if (IsItalic is { } isItalic && isItalic)
|
||||||
list.Add(new Italic());
|
list.Add(new Italic());
|
||||||
|
|
||||||
if (Underline is not null)
|
if (Underline is { } underline)
|
||||||
list.Add(new Underline { Val = Underline });
|
list.Add(new Underline { Val = underline });
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(Color))
|
if (!string.IsNullOrWhiteSpace(Color))
|
||||||
list.Add(new Color { Val = Color });
|
list.Add(new Color { Val = Color });
|
||||||
|
|
||||||
if (SubSup is not null)
|
if (SubSup is { } subsup)
|
||||||
list.Add(new VerticalTextAlignment { Val = SubSup });
|
list.Add(new VerticalTextAlignment { Val = subsup });
|
||||||
|
|
||||||
return list.Count > 0;
|
return list.Count > 0;
|
||||||
}
|
}
|
||||||
@@ -58,23 +58,23 @@ public record FontProps
|
|||||||
{
|
{
|
||||||
list = [];
|
list = [];
|
||||||
|
|
||||||
if (_SizeD is not null)
|
if (_SizeD is { } sizeD)
|
||||||
list.Add(new FontSize { Val = _SizeD.Value.ToString() });
|
list.Add(new FontSize { Val = sizeD.ToString() });
|
||||||
|
|
||||||
if (IsBold)
|
if (IsBold is { } isBold && isBold)
|
||||||
list.Add(new Bold());
|
list.Add(new Bold());
|
||||||
|
|
||||||
if (IsItalic)
|
if (IsItalic is { } isItalic && isItalic)
|
||||||
list.Add(new Italic());
|
list.Add(new Italic());
|
||||||
|
|
||||||
if (Underline is not null)
|
if (Underline is { } underline)
|
||||||
list.Add(new Underline { Val = Underline });
|
list.Add(new Underline { Val = underline });
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(Color))
|
if (!string.IsNullOrWhiteSpace(Color))
|
||||||
list.Add(new Color { Val = Color });
|
list.Add(new Color { Val = Color });
|
||||||
|
|
||||||
if (SubSup is not null)
|
if (SubSup is { } subsup)
|
||||||
list.Add(new VerticalTextAlignment { Val = SubSup });
|
list.Add(new VerticalTextAlignment { Val = subsup });
|
||||||
|
|
||||||
return list.Count > 0;
|
return list.Count > 0;
|
||||||
}
|
}
|
||||||
@@ -85,17 +85,17 @@ public record FontProps
|
|||||||
if (!string.IsNullOrWhiteSpace(FontFamily))
|
if (!string.IsNullOrWhiteSpace(FontFamily))
|
||||||
list.Add(new RunFonts { Ascii = FontFamily, HighAnsi = FontFamily });
|
list.Add(new RunFonts { Ascii = FontFamily, HighAnsi = FontFamily });
|
||||||
|
|
||||||
if (_SizeD is not null)
|
if (_SizeD is { } sizeD)
|
||||||
list.Add(new FontSize { Val = _SizeD.Value.ToString() });
|
list.Add(new FontSize { Val = sizeD.ToString() });
|
||||||
|
|
||||||
if (IsBold)
|
if (IsBold is { } isBold && isBold)
|
||||||
list.Add(new Bold());
|
list.Add(new Bold());
|
||||||
|
|
||||||
if (IsItalic)
|
if (IsItalic is { } isItalic && isItalic)
|
||||||
list.Add(new Italic());
|
list.Add(new Italic());
|
||||||
|
|
||||||
if (Underline is not null)
|
if (Underline is { } underline)
|
||||||
list.Add(new Underline { Val = Underline });
|
list.Add(new Underline { Val = underline });
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(Color))
|
if (!string.IsNullOrWhiteSpace(Color))
|
||||||
list.Add(new Color { Val = Color });
|
list.Add(new Color { Val = Color });
|
||||||
@@ -111,17 +111,17 @@ public record FontProps
|
|||||||
if (!string.IsNullOrWhiteSpace(FontFamily))
|
if (!string.IsNullOrWhiteSpace(FontFamily))
|
||||||
list.Add(new RunFonts { Ascii = FontFamily, HighAnsi = FontFamily });
|
list.Add(new RunFonts { Ascii = FontFamily, HighAnsi = FontFamily });
|
||||||
|
|
||||||
if (_SizeD is not null)
|
if (_SizeD is { } sizeD)
|
||||||
list.Add(new FontSize { Val = _SizeD.Value.ToString() });
|
list.Add(new FontSize { Val = sizeD.ToString() });
|
||||||
|
|
||||||
if (IsBold)
|
if (IsBold is { } isBold && isBold)
|
||||||
list.Add(new Bold());
|
list.Add(new Bold());
|
||||||
|
|
||||||
if (IsItalic)
|
if (IsItalic is { } isItalic && isItalic)
|
||||||
list.Add(new Italic());
|
list.Add(new Italic());
|
||||||
|
|
||||||
if (Underline is not null)
|
if (Underline is { } underline)
|
||||||
list.Add(new Underline { Val = Underline });
|
list.Add(new Underline { Val = underline });
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(Color))
|
if (!string.IsNullOrWhiteSpace(Color))
|
||||||
list.Add(new Color { Val = Color });
|
list.Add(new Color { Val = Color });
|
||||||
@@ -136,9 +136,13 @@ public record FontProps
|
|||||||
list = [];
|
list = [];
|
||||||
|
|
||||||
// Для математики используем только элемент Style
|
// Для математики используем только элемент Style
|
||||||
if (IsBold)
|
if (IsBold is { } isBold && isBold)
|
||||||
list.Add(new MathStyle { Val = MathStyleValues.BoldItalic });
|
list.Add(new MathStyle
|
||||||
else list.Add(new MathStyle { Val = MathStyleValues.Italic });
|
{
|
||||||
|
Val = isBold
|
||||||
|
? MathStyleValues.BoldItalic
|
||||||
|
: MathStyleValues.Italic
|
||||||
|
});
|
||||||
// Обычное начертание можно не добавлять, так как по умолчанию и так обычное
|
// Обычное начертание можно не добавлять, так как по умолчанию и так обычное
|
||||||
// (но если нужно явно сбросить, можно добавить Style { Val = StyleValues.Plain })
|
// (но если нужно явно сбросить, можно добавить Style { Val = StyleValues.Plain })
|
||||||
|
|
||||||
@@ -159,4 +163,20 @@ public record FontProps
|
|||||||
|
|
||||||
public static FontProps WithColor(string hexColor) =>
|
public static FontProps WithColor(string hexColor) =>
|
||||||
new() { Color = hexColor };
|
new() { Color = hexColor };
|
||||||
|
|
||||||
|
public FontProps Override(FontProps? second)
|
||||||
|
{
|
||||||
|
if (second is null) return this;
|
||||||
|
|
||||||
|
return new FontProps
|
||||||
|
{
|
||||||
|
FontFamily = second.FontFamily ?? FontFamily,
|
||||||
|
Size = second.Size ?? Size,
|
||||||
|
IsItalic = second.IsItalic ?? IsItalic,
|
||||||
|
IsBold = second.IsBold ?? IsBold,
|
||||||
|
Underline = second.Underline ?? Underline,
|
||||||
|
SubSup = second.SubSup ?? SubSup,
|
||||||
|
Color = second.Color ?? Color,
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -64,10 +64,13 @@ internal static class ReplaceToTableExt
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Извлекаем свойства шрифта для передачи в TableBuilder
|
// Извлекаем свойства шрифта для передачи в TableBuilder
|
||||||
baseFont ??= ExtractFontPropsFromParagraph(paragraph, oldValue);
|
var fontProps = ExtractFontPropsFromParagraph(paragraph, oldValue);
|
||||||
|
|
||||||
|
if (fontProps is { } props)
|
||||||
|
props.Override(baseFont);
|
||||||
|
|
||||||
// Заменяем параграф на таблицу
|
// Заменяем параграф на таблицу
|
||||||
ReplaceWithTableBuilder(paragraph, buildTable, baseFont);
|
ReplaceWithTableBuilder(paragraph, buildTable, fontProps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user