Добавьте файлы проекта.
This commit is contained in:
315
QWERTYkez.WordProcessor/Builders/Interfaces.cs
Normal file
315
QWERTYkez.WordProcessor/Builders/Interfaces.cs
Normal file
@@ -0,0 +1,315 @@
|
||||
namespace QWERTYkez.WordProcessor.Builders;
|
||||
|
||||
public interface ITable
|
||||
{
|
||||
/// <summary>Базовый шрифт, используемый по умолчанию для содержимого таблицы.</summary>
|
||||
FontProps BaseFont { get; }
|
||||
|
||||
/// <summary>Добавляет строку в таблицу, настраиваемую с помощью <paramref name="configure"/>.</summary>
|
||||
/// <param name="configure">Делегат для конфигурации строки через <see cref="IRow"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ITable"/> для цепочки вызовов.</returns>
|
||||
ITable AddRow(Action<IRow> configure);
|
||||
|
||||
/// <summary>Добавляет строку с указанной высотой, настраиваемую с помощью <paramref name="configure"/>.</summary>
|
||||
/// <param name="height">Высота строки в сантиметрах.</param>
|
||||
/// <param name="configure">Делегат для конфигурации строки через <see cref="IRow"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ITable"/> для цепочки вызовов.</returns>
|
||||
ITable AddRow(double height, Action<IRow> configure);
|
||||
|
||||
/// <summary>Добавляет строку с ячейками, содержащими заданные тексты, используя указанный шрифт.</summary>
|
||||
/// <param name="font">Шрифт для всех ячеек строки.</param>
|
||||
/// <param name="cellTexts">Массив текстов для ячеек.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ITable"/> для цепочки вызовов.</returns>
|
||||
ITable AddRowWithCells(FontProps font, params string[] cellTexts);
|
||||
|
||||
/// <summary>Добавляет строку с ячейками, содержащими заданные тексты, используя базовый шрифт таблицы.</summary>
|
||||
/// <param name="cellTexts">Массив текстов для ячеек.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ITable"/> для цепочки вызовов.</returns>
|
||||
ITable AddRowWithCells(params string[] cellTexts);
|
||||
|
||||
/// <summary>Задаёт свойства таблицы: ширину и стиль границ, выравнивание.</summary>
|
||||
/// <param name="borderWidth">Ширина границ в пунктах (1/8 pt). По умолчанию 8.</param>
|
||||
/// <param name="borderValues">Стиль границ. По умолчанию <see cref="BorderValues.Single"/>.</param>
|
||||
/// <param name="tableAlignment">Выравнивание таблицы на странице. По умолчанию <see cref="TableRowAlignmentValues.Center"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ITable"/> для цепочки вызовов.</returns>
|
||||
ITable Properties(uint borderWidth = 8, BorderValues? borderValues = null, TableRowAlignmentValues? tableAlignment = null);
|
||||
|
||||
/// <summary>Создаёт объект <see cref="Table"/> на основе выполненных настроек.</summary>
|
||||
/// <returns>Готовый объект <see cref="Table"/> для вставки в документ.</returns>
|
||||
internal Table Build();
|
||||
}
|
||||
|
||||
public interface IRow
|
||||
{
|
||||
/// <summary>Базовый шрифт, используемый по умолчанию для содержимого строки.</summary>
|
||||
FontProps BaseFont { get; }
|
||||
|
||||
/// <summary>Добавляет ячейку, настраиваемую с помощью <paramref name="configure"/>.</summary>
|
||||
/// <param name="configure">Делегат для конфигурации ячейки через <see cref="ICell"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow AddCell(Action<ICell> configure);
|
||||
|
||||
/// <summary>Добавляет ячейку с заданными свойствами (без текста).</summary>
|
||||
/// <param name="cellProps">Свойства ячейки (ширина, объединение, вертикальное выравнивание).</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow AddCell(CellProps cellProps);
|
||||
|
||||
/// <summary>Добавляет ячейку с заданными свойствами и текстом (используется базовый шрифт).</summary>
|
||||
/// <param name="cellProps">Свойства ячейки.</param>
|
||||
/// <param name="text">Текст ячейки.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow AddCell(CellProps cellProps, string text);
|
||||
|
||||
/// <summary>Добавляет ячейку с заданными свойствами, текстом и указанным шрифтом.</summary>
|
||||
/// <param name="cellProps">Свойства ячейки.</param>
|
||||
/// <param name="text">Текст ячейки.</param>
|
||||
/// <param name="font">Шрифт для текста. Если <see langword="null"/>, используется базовый шрифт.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow AddCell(CellProps cellProps, string text, FontProps font);
|
||||
|
||||
/// <summary>Добавляет ячейку с простым текстом (используется базовый шрифт).</summary>
|
||||
/// <param name="text">Текст ячейки.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow AddCell(string text);
|
||||
|
||||
/// <summary>Добавляет ячейку с простым текстом и указанным шрифтом.</summary>
|
||||
/// <param name="text">Текст ячейки.</param>
|
||||
/// <param name="font">Шрифт для текста. Если <see langword="null"/>, используется базовый шрифт.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow AddCell(string text, FontProps font);
|
||||
|
||||
/// <summary>Добавляет ячейку, содержащую один абзац, построенный с помощью <paramref name="configure"/>.</summary>
|
||||
/// <param name="configure">Делегат для конфигурации абзаца через <see cref="IParagraph"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow AddCellWithPara(Action<IParagraph> configure);
|
||||
|
||||
/// <summary>Добавляет ячейку с указанными свойствами, содержащую один абзац, построенный с помощью <paramref name="configure"/>.</summary>
|
||||
/// <param name="cellProps">Свойства ячейки.</param>
|
||||
/// <param name="configure">Делегат для конфигурации абзаца через <see cref="IParagraph"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow AddCellWithPara(CellProps cellProps, Action<IParagraph> configure);
|
||||
|
||||
/// <summary>Устанавливает точную высоту строки (свойство Exact).</summary>
|
||||
/// <param name="heightInCm">Высота в сантиметрах.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow SetExactHeight(double heightInCm);
|
||||
|
||||
/// <summary>Устанавливает минимальную высоту строки (свойство AtLeast).</summary>
|
||||
/// <param name="heightInCm">Высота в сантиметрах.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow SetHeight(double heightInCm);
|
||||
|
||||
/// <summary>Позволяет напрямую настроить свойства строки <see cref="TableRowProperties"/>.</summary>
|
||||
/// <param name="configure">Делегат для настройки свойств.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IRow"/> для цепочки вызовов.</returns>
|
||||
IRow SetProperties(Action<TableRowProperties> configure);
|
||||
|
||||
/// <summary>Создаёт объект <see cref="TableRow"/> на основе выполненных настроек.</summary>
|
||||
/// <returns>Готовый объект <see cref="TableRow"/> для вставки в таблицу.</returns>
|
||||
internal TableRow Build();
|
||||
}
|
||||
|
||||
public interface ICell
|
||||
{
|
||||
/// <summary>Базовый шрифт, используемый по умолчанию для содержимого ячейки.</summary>
|
||||
FontProps BaseFont { get; }
|
||||
|
||||
/// <summary>Добавляет в ячейку абзац, содержащий математическую формулу.</summary>
|
||||
/// <param name="configure">Делегат для конфигурации формулы через <see cref="IFormula"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ICell"/> для цепочки вызовов.</returns>
|
||||
ICell AddFormula(Action<IFormula> configure);
|
||||
|
||||
/// <summary>Добавляет в ячейку абзац, построенный с помощью <paramref name="configure"/>.</summary>
|
||||
/// <param name="configure">Делегат для конфигурации абзаца через <see cref="IParagraph"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ICell"/> для цепочки вызовов.</returns>
|
||||
ICell AddParagraph(Action<IParagraph> configure);
|
||||
|
||||
/// <summary>Добавляет в ячейку абзац, состоящий из нескольких строк текста (разделённых переносами).</summary>
|
||||
/// <param name="lines">Массив строк, каждая строка будет размещена на новой строке абзаца.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ICell"/> для цепочки вызовов.</returns>
|
||||
ICell AddParagraph(params string[] lines);
|
||||
|
||||
/// <summary>Добавляет в ячейку абзац с указанным текстом и опциональным шрифтом.</summary>
|
||||
/// <param name="text">Текст абзаца.</param>
|
||||
/// <param name="font">Шрифт для текста. Если <see langword="null"/>, используется базовый шрифт.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ICell"/> для цепочки вызовов.</returns>
|
||||
ICell AddParagraph(string text, FontProps? font = null);
|
||||
|
||||
/// <summary>Устанавливает свойства ячейки (ширина, объединение, вертикальное выравнивание).</summary>
|
||||
/// <param name="props">Свойства ячейки.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="ICell"/> для цепочки вызовов.</returns>
|
||||
ICell SetCellProps(CellProps props);
|
||||
|
||||
/// <summary>Создаёт объект <see cref="TableCell"/> на основе выполненных настроек.</summary>
|
||||
/// <returns>Готовый объект <see cref="TableCell"/> для вставки в строку.</returns>
|
||||
internal TableCell Build();
|
||||
}
|
||||
|
||||
public interface IText
|
||||
{
|
||||
/// <summary>Базовый шрифт, используемый по умолчанию для содержимого текстового блока.</summary>
|
||||
FontProps BaseFont { get; }
|
||||
|
||||
/// <summary>Добавляет в документ абзац, содержащий математическую формулу.</summary>
|
||||
/// <param name="configure">Делегат для конфигурации формулы через <see cref="IFormula"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IText"/> для цепочки вызовов.</returns>
|
||||
IText AddFormula(Action<IFormula> configure);
|
||||
|
||||
/// <summary>Добавляет абзац, построенный с помощью <paramref name="configure"/>.</summary>
|
||||
/// <param name="configure">Делегат для конфигурации абзаца через <see cref="IParagraph"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IText"/> для цепочки вызовов.</returns>
|
||||
IText AddParagraph(Action<IParagraph> configure);
|
||||
|
||||
/// <summary>Добавляет абзац, состоящий из нескольких строк текста (разделённых переносами).</summary>
|
||||
/// <param name="lines">Массив строк, каждая строка будет размещена на новой строке абзаца.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IText"/> для цепочки вызовов.</returns>
|
||||
IText AddParagraph(params string[] lines);
|
||||
|
||||
/// <summary>Добавляет абзац с указанным текстом и опциональным шрифтом.</summary>
|
||||
/// <param name="text">Текст абзаца.</param>
|
||||
/// <param name="font">Шрифт для текста. Если <see langword="null"/>, используется базовый шрифт.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IText"/> для цепочки вызовов.</returns>
|
||||
IText AddParagraph(string text, FontProps? font = null);
|
||||
|
||||
/// <summary>Создаёт список абзацев <see cref="Paragraph"/> на основе выполненных настроек.</summary>
|
||||
/// <returns>Список готовых абзацев для вставки в документ.</returns>
|
||||
internal List<Paragraph> Build();
|
||||
}
|
||||
|
||||
public interface IParagraph
|
||||
{
|
||||
/// <summary>Базовый шрифт, используемый по умолчанию для содержимого абзаца.</summary>
|
||||
FontProps BaseFont { get; }
|
||||
|
||||
/// <summary>Добавляет в абзац математическую формулу (внутри отдельного <see cref="Run"/>).</summary>
|
||||
/// <param name="configure">Делегат для конфигурации формулы через <see cref="IFormula"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph AddFormula(Action<IFormula> configure);
|
||||
|
||||
/// <summary>Добавляет в абзац математическую формулу (внутри отдельного <see cref="Run"/>) и разрыв строки (<see cref="DocumentFormat.OpenXml.Wordprocessing.Break"/>) в текущий абзац.</summary>
|
||||
/// <param name="configure">Делегат для конфигурации формулы через <see cref="IFormula"/>.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph AddFormulaBreak(Action<IFormula> configure);
|
||||
|
||||
/// <summary>Добавляет разрыв строки (<see cref="DocumentFormat.OpenXml.Wordprocessing.Break"/>) в текущий абзац.</summary>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph Break();
|
||||
|
||||
/// <summary>Добавляет разрыв строки (<see cref="DocumentFormat.OpenXml.Wordprocessing.Break"/>) в текущий абзац.</summary>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph BreakPage();
|
||||
|
||||
/// <summary>Добавляет текстовый фрагмент (<see cref="Run"/>) с указанным текстом и опциональным шрифтом.</summary>
|
||||
/// <param name="text">Текст фрагмента.</param>
|
||||
/// <param name="font">Шрифт для текста. Если <see langword="null"/>, используется базовый шрифт.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph AddRun(string text, FontProps? font = null);
|
||||
|
||||
/// <summary>Добавляет текстовый фрагмент (<see cref="Run"/>) с указанным текстом и опциональным шрифтом и разрыв строки (<see cref="DocumentFormat.OpenXml.Wordprocessing.Break"/>) в текущий абзац.</summary>
|
||||
/// <param name="text">Текст фрагмента.</param>
|
||||
/// <param name="font">Шрифт для текста. Если <see langword="null"/>, используется базовый шрифт.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph AddRunBreak(string text, FontProps? font = null);
|
||||
|
||||
/// <summary>Добавляет текстовый фрагмент с полным контролем над свойствами <see cref="RunProperties"/>.</summary>
|
||||
/// <param name="text">Текст фрагмента.</param>
|
||||
/// <param name="configure">Делегат для настройки свойств фрагмента.</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph AddRunWithCustomProps(string text, Action<RunProperties> configure);
|
||||
|
||||
/// <summary>Добавляет текстовый фрагмент, отформатированный как нижний индекс (<see cref="VerticalPositionValues.Subscript"/>).</summary>
|
||||
/// <param name="text">Текст фрагмента.</param>
|
||||
/// <param name="font">Базовый шрифт (свойства <see cref="SubSup"/> будут переопределены).</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph AddSubRun(string text, FontProps? font = null);
|
||||
|
||||
/// <summary>Добавляет текстовый фрагмент, отформатированный как верхний индекс (<see cref="VerticalPositionValues.Superscript"/>).</summary>
|
||||
/// <param name="text">Текст фрагмента.</param>
|
||||
/// <param name="font">Базовый шрифт (свойства <see cref="SubSup"/> будут переопределены).</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph AddSupRun(string text, FontProps? font = null);
|
||||
|
||||
/// <summary>Устанавливает выравнивание абзаца.</summary>
|
||||
/// <param name="alignment">Тип выравнивания (лево, право, центр, по ширине).</param>
|
||||
/// <returns>Тот же экземпляр <see cref="IParagraph"/> для цепочки вызовов.</returns>
|
||||
IParagraph SetAlignment(JustificationValues alignment);
|
||||
|
||||
/// <summary>Создаёт объект <see cref="Paragraph"/> на основе выполненных настроек.</summary>
|
||||
/// <returns>Готовый объект <see cref="Paragraph"/>.</returns>
|
||||
internal Paragraph Build();
|
||||
}
|
||||
|
||||
public interface IFormula
|
||||
{
|
||||
FontProps BaseFont { get; }
|
||||
|
||||
IFormula Text(string text);
|
||||
|
||||
|
||||
IFormula Division(string numerator, string denominator);
|
||||
IFormula Division(string numerator, Action<IFormula> denominator);
|
||||
IFormula Division(Action<IFormula> numerator, string denominator);
|
||||
IFormula Division(Action<IFormula> numerator, Action<IFormula> denominator);
|
||||
|
||||
|
||||
IFormula Sup(string baseText, string supText);
|
||||
IFormula Sup(string baseText, Action<IFormula> supText);
|
||||
IFormula Sup(Action<IFormula> baseText, string supText);
|
||||
IFormula Sup(Action<IFormula> baseText, Action<IFormula> supText);
|
||||
|
||||
|
||||
IFormula Sub(string baseText, string subText);
|
||||
IFormula Sub(string baseText, Action<IFormula> subText);
|
||||
IFormula Sub(Action<IFormula> baseText, string subText);
|
||||
IFormula Sub(Action<IFormula> baseText, Action<IFormula> subText);
|
||||
|
||||
|
||||
IFormula SubSup(string baseText, string subText, string supText);
|
||||
IFormula SubSup(string baseText, string subText, Action<IFormula> supText);
|
||||
IFormula SubSup(string baseText, Action<IFormula> subText, string supText);
|
||||
IFormula SubSup(string baseText, Action<IFormula> subText, Action<IFormula> supText);
|
||||
IFormula SubSup(Action<IFormula> baseText, string subText, string supText);
|
||||
IFormula SubSup(Action<IFormula> baseText, string subText, Action<IFormula> supText);
|
||||
IFormula SubSup(Action<IFormula> baseText, Action<IFormula> subText, string supText);
|
||||
IFormula SubSup(Action<IFormula> baseText, Action<IFormula> subText, Action<IFormula> supText);
|
||||
|
||||
|
||||
IFormula Root(string radicand);
|
||||
IFormula Root(Action<IFormula> radicand);
|
||||
IFormula Root(string radicand, string degree);
|
||||
IFormula Root(string radicand, Action<IFormula> degree);
|
||||
IFormula Root(Action<IFormula> radicand, string degree);
|
||||
IFormula Root(Action<IFormula> radicand, Action<IFormula> degree);
|
||||
|
||||
|
||||
IFormula Integral(string function, string differential, string? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Integral(string function, string differential, string? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Integral(string function, string differential, Action<IFormula>? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Integral(string function, string differential, Action<IFormula>? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Integral(string function, Action<IFormula> differential, string? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Integral(string function, Action<IFormula> differential, string? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Integral(string function, Action<IFormula> differential, Action<IFormula>? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Integral(string function, Action<IFormula> differential, Action<IFormula>? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Integral(Action<IFormula> function, string differential, string? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Integral(Action<IFormula> function, string differential, string? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Integral(Action<IFormula> function, string differential, Action<IFormula>? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Integral(Action<IFormula> function, string differential, Action<IFormula>? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Integral(Action<IFormula> function, Action<IFormula> differential, string? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Integral(Action<IFormula> function, Action<IFormula> differential, string? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Integral(Action<IFormula> function, Action<IFormula> differential, Action<IFormula>? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Integral(Action<IFormula> function, Action<IFormula> differential, Action<IFormula>? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
|
||||
|
||||
IFormula Sum(string expression, string? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Sum(string expression, string? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Sum(string expression, Action<IFormula>? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Sum(string expression, Action<IFormula>? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Sum(Action<IFormula> expression, string? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Sum(Action<IFormula> expression, string? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
IFormula Sum(Action<IFormula> expression, Action<IFormula>? lowerLimit = null, string? upperLimit = null);
|
||||
IFormula Sum(Action<IFormula> expression, Action<IFormula>? lowerLimit = null, Action<IFormula>? upperLimit = null);
|
||||
|
||||
|
||||
internal void PushContext(OpenXmlElement element);
|
||||
internal void PopContext();
|
||||
}
|
||||
Reference in New Issue
Block a user