namespace QWERTYkez.WordProcessor.Builders;
public interface ITable
{
/// Базовый шрифт, используемый по умолчанию для содержимого таблицы.
FontProps BaseFont { get; }
/// Добавляет строку в таблицу, настраиваемую с помощью .
/// Делегат для конфигурации строки через .
/// Тот же экземпляр для цепочки вызовов.
ITable AddRow(Action configure);
/// Добавляет строку с указанной высотой, настраиваемую с помощью .
/// Высота строки в сантиметрах.
/// Делегат для конфигурации строки через .
/// Тот же экземпляр для цепочки вызовов.
ITable AddRow(double height, Action configure);
/// Добавляет строку с ячейками, содержащими заданные тексты, используя указанный шрифт.
/// Шрифт для всех ячеек строки.
/// Массив текстов для ячеек.
/// Тот же экземпляр для цепочки вызовов.
ITable AddRowWithCells(FontProps font, params string[] cellTexts);
/// Добавляет строку с ячейками, содержащими заданные тексты, используя базовый шрифт таблицы.
/// Массив текстов для ячеек.
/// Тот же экземпляр для цепочки вызовов.
ITable AddRowWithCells(params string[] cellTexts);
/// Задаёт свойства таблицы: ширину и стиль границ, выравнивание.
/// Ширина границ в пунктах (1/8 pt). По умолчанию 8.
/// Стиль границ. По умолчанию .
/// Выравнивание таблицы на странице. По умолчанию .
/// Тот же экземпляр для цепочки вызовов.
ITable Properties(uint borderWidth = 8, BorderValues? borderValues = null, TableRowAlignmentValues? tableAlignment = null);
/// Создаёт объект на основе выполненных настроек.
/// Готовый объект для вставки в документ.
internal Table Build();
}
public interface IRow
{
/// Базовый шрифт, используемый по умолчанию для содержимого строки.
FontProps BaseFont { get; }
/// Добавляет ячейку, настраиваемую с помощью .
/// Делегат для конфигурации ячейки через .
/// Тот же экземпляр для цепочки вызовов.
IRow AddCell(Action configure);
/// Добавляет ячейку с заданными свойствами (без текста).
/// Свойства ячейки (ширина, объединение, вертикальное выравнивание).
/// Тот же экземпляр для цепочки вызовов.
IRow AddCell(CellProps cellProps);
/// Добавляет ячейку с заданными свойствами и текстом (используется базовый шрифт).
/// Свойства ячейки.
/// Текст ячейки.
/// Тот же экземпляр для цепочки вызовов.
IRow AddCell(CellProps cellProps, string text);
/// Добавляет ячейку с заданными свойствами, текстом и указанным шрифтом.
/// Свойства ячейки.
/// Текст ячейки.
/// Шрифт для текста. Если , используется базовый шрифт.
/// Тот же экземпляр для цепочки вызовов.
IRow AddCell(CellProps cellProps, string text, FontProps font);
/// Добавляет ячейку с простым текстом (используется базовый шрифт).
/// Текст ячейки.
/// Тот же экземпляр для цепочки вызовов.
IRow AddCell(string text);
/// Добавляет ячейку с простым текстом и указанным шрифтом.
/// Текст ячейки.
/// Шрифт для текста. Если , используется базовый шрифт.
/// Тот же экземпляр для цепочки вызовов.
IRow AddCell(string text, FontProps font);
/// Добавляет ячейку, содержащую один абзац, построенный с помощью .
/// Делегат для конфигурации абзаца через .
/// Тот же экземпляр для цепочки вызовов.
IRow AddCellWithPara(Action configure);
/// Добавляет ячейку с указанными свойствами, содержащую один абзац, построенный с помощью .
/// Свойства ячейки.
/// Делегат для конфигурации абзаца через .
/// Тот же экземпляр для цепочки вызовов.
IRow AddCellWithPara(CellProps cellProps, Action configure);
/// Устанавливает точную высоту строки (свойство Exact).
/// Высота в сантиметрах.
/// Тот же экземпляр для цепочки вызовов.
IRow SetExactHeight(double heightInCm);
/// Устанавливает минимальную высоту строки (свойство AtLeast).
/// Высота в сантиметрах.
/// Тот же экземпляр для цепочки вызовов.
IRow SetHeight(double heightInCm);
/// Позволяет напрямую настроить свойства строки .
/// Делегат для настройки свойств.
/// Тот же экземпляр для цепочки вызовов.
IRow SetProperties(Action configure);
/// Создаёт объект на основе выполненных настроек.
/// Готовый объект для вставки в таблицу.
internal TableRow Build();
}
public interface ICell
{
/// Базовый шрифт, используемый по умолчанию для содержимого ячейки.
FontProps BaseFont { get; }
/// Добавляет в ячейку абзац, содержащий математическую формулу.
/// Делегат для конфигурации формулы через .
/// Тот же экземпляр для цепочки вызовов.
ICell AddFormula(Action configure);
/// Добавляет в ячейку абзац, построенный с помощью .
/// Делегат для конфигурации абзаца через .
/// Тот же экземпляр для цепочки вызовов.
ICell AddParagraph(Action configure);
/// Добавляет в ячейку абзац, состоящий из нескольких строк текста (разделённых переносами).
/// Массив строк, каждая строка будет размещена на новой строке абзаца.
/// Тот же экземпляр для цепочки вызовов.
ICell AddParagraph(params string[] lines);
/// Добавляет в ячейку абзац с указанным текстом и опциональным шрифтом.
/// Текст абзаца.
/// Шрифт для текста. Если , используется базовый шрифт.
/// Тот же экземпляр для цепочки вызовов.
ICell AddParagraph(string text, FontProps? font = null);
/// Устанавливает свойства ячейки (ширина, объединение, вертикальное выравнивание).
/// Свойства ячейки.
/// Тот же экземпляр для цепочки вызовов.
ICell SetCellProps(CellProps props);
/// Создаёт объект на основе выполненных настроек.
/// Готовый объект для вставки в строку.
internal TableCell Build();
}
public interface IText
{
/// Базовый шрифт, используемый по умолчанию для содержимого текстового блока.
FontProps BaseFont { get; }
/// Добавляет в документ абзац, содержащий математическую формулу.
/// Делегат для конфигурации формулы через .
/// Тот же экземпляр для цепочки вызовов.
IText AddFormula(Action configure);
/// Добавляет абзац, построенный с помощью .
/// Делегат для конфигурации абзаца через .
/// Тот же экземпляр для цепочки вызовов.
IText AddParagraph(Action configure);
/// Добавляет абзац, состоящий из нескольких строк текста (разделённых переносами).
/// Массив строк, каждая строка будет размещена на новой строке абзаца.
/// Тот же экземпляр для цепочки вызовов.
IText AddParagraph(params string[] lines);
/// Добавляет абзац с указанным текстом и опциональным шрифтом.
/// Текст абзаца.
/// Шрифт для текста. Если , используется базовый шрифт.
/// Тот же экземпляр для цепочки вызовов.
IText AddParagraph(string text, FontProps? font = null);
/// Создаёт список абзацев на основе выполненных настроек.
/// Список готовых абзацев для вставки в документ.
internal List Build();
}
public interface IParagraph
{
/// Базовый шрифт, используемый по умолчанию для содержимого абзаца.
FontProps BaseFont { get; }
/// Добавляет в абзац математическую формулу (внутри отдельного ).
/// Делегат для конфигурации формулы через .
/// Тот же экземпляр для цепочки вызовов.
IParagraph AddFormula(Action configure);
/// Добавляет в абзац математическую формулу (внутри отдельного ) и разрыв строки () в текущий абзац.
/// Делегат для конфигурации формулы через .
/// Тот же экземпляр для цепочки вызовов.
IParagraph AddFormulaBreak(Action configure);
/// Добавляет разрыв строки () в текущий абзац.
/// Тот же экземпляр для цепочки вызовов.
IParagraph Break();
/// Добавляет разрыв строки () в текущий абзац.
/// Тот же экземпляр для цепочки вызовов.
IParagraph BreakPage();
/// Добавляет текстовый фрагмент () с указанным текстом и опциональным шрифтом.
/// Текст фрагмента.
/// Шрифт для текста. Если , используется базовый шрифт.
/// Тот же экземпляр для цепочки вызовов.
IParagraph AddRun(string text, FontProps? font = null);
/// Добавляет текстовый фрагмент () с указанным текстом и опциональным шрифтом и разрыв строки () в текущий абзац.
/// Текст фрагмента.
/// Шрифт для текста. Если , используется базовый шрифт.
/// Тот же экземпляр для цепочки вызовов.
IParagraph AddRunBreak(string text, FontProps? font = null);
/// Добавляет текстовый фрагмент с полным контролем над свойствами .
/// Текст фрагмента.
/// Делегат для настройки свойств фрагмента.
/// Тот же экземпляр для цепочки вызовов.
IParagraph AddRunWithCustomProps(string text, Action configure);
/// Добавляет текстовый фрагмент, отформатированный как нижний индекс ().
/// Текст фрагмента.
/// Базовый шрифт (свойства будут переопределены).
/// Тот же экземпляр для цепочки вызовов.
IParagraph AddSubRun(string text, FontProps? font = null);
/// Добавляет текстовый фрагмент, отформатированный как верхний индекс ().
/// Текст фрагмента.
/// Базовый шрифт (свойства будут переопределены).
/// Тот же экземпляр для цепочки вызовов.
IParagraph AddSupRun(string text, FontProps? font = null);
/// Устанавливает выравнивание абзаца.
/// Тип выравнивания (лево, право, центр, по ширине).
/// Тот же экземпляр для цепочки вызовов.
IParagraph SetAlignment(JustificationValues alignment);
/// Создаёт объект на основе выполненных настроек.
/// Готовый объект .
internal Paragraph Build();
}
public interface IFormula
{
FontProps BaseFont { get; }
IFormula Text(string text);
IFormula Division(string numerator, string denominator);
IFormula Division(string numerator, Action denominator);
IFormula Division(Action numerator, string denominator);
IFormula Division(Action numerator, Action denominator);
IFormula Sup(string baseText, string supText);
IFormula Sup(string baseText, Action supText);
IFormula Sup(Action baseText, string supText);
IFormula Sup(Action baseText, Action supText);
IFormula Sub(string baseText, string subText);
IFormula Sub(string baseText, Action subText);
IFormula Sub(Action baseText, string subText);
IFormula Sub(Action baseText, Action subText);
IFormula SubSup(string baseText, string subText, string supText);
IFormula SubSup(string baseText, string subText, Action supText);
IFormula SubSup(string baseText, Action subText, string supText);
IFormula SubSup(string baseText, Action subText, Action supText);
IFormula SubSup(Action baseText, string subText, string supText);
IFormula SubSup(Action baseText, string subText, Action supText);
IFormula SubSup(Action baseText, Action subText, string supText);
IFormula SubSup(Action baseText, Action subText, Action supText);
IFormula Root(string radicand);
IFormula Root(Action radicand);
IFormula Root(string radicand, string degree);
IFormula Root(string radicand, Action degree);
IFormula Root(Action radicand, string degree);
IFormula Root(Action radicand, Action degree);
IFormula Integral(string function, string differential, string? lowerLimit = null, string? upperLimit = null);
IFormula Integral(string function, string differential, string? lowerLimit = null, Action? upperLimit = null);
IFormula Integral(string function, string differential, Action? lowerLimit = null, string? upperLimit = null);
IFormula Integral(string function, string differential, Action? lowerLimit = null, Action? upperLimit = null);
IFormula Integral(string function, Action differential, string? lowerLimit = null, string? upperLimit = null);
IFormula Integral(string function, Action differential, string? lowerLimit = null, Action? upperLimit = null);
IFormula Integral(string function, Action differential, Action? lowerLimit = null, string? upperLimit = null);
IFormula Integral(string function, Action differential, Action? lowerLimit = null, Action? upperLimit = null);
IFormula Integral(Action function, string differential, string? lowerLimit = null, string? upperLimit = null);
IFormula Integral(Action function, string differential, string? lowerLimit = null, Action? upperLimit = null);
IFormula Integral(Action function, string differential, Action? lowerLimit = null, string? upperLimit = null);
IFormula Integral(Action function, string differential, Action? lowerLimit = null, Action? upperLimit = null);
IFormula Integral(Action function, Action differential, string? lowerLimit = null, string? upperLimit = null);
IFormula Integral(Action function, Action differential, string? lowerLimit = null, Action? upperLimit = null);
IFormula Integral(Action function, Action differential, Action? lowerLimit = null, string? upperLimit = null);
IFormula Integral(Action function, Action differential, Action? lowerLimit = null, Action? upperLimit = null);
IFormula Sum(string expression, string? lowerLimit = null, string? upperLimit = null);
IFormula Sum(string expression, string? lowerLimit = null, Action? upperLimit = null);
IFormula Sum(string expression, Action? lowerLimit = null, string? upperLimit = null);
IFormula Sum(string expression, Action? lowerLimit = null, Action? upperLimit = null);
IFormula Sum(Action expression, string? lowerLimit = null, string? upperLimit = null);
IFormula Sum(Action expression, string? lowerLimit = null, Action? upperLimit = null);
IFormula Sum(Action expression, Action? lowerLimit = null, string? upperLimit = null);
IFormula Sum(Action expression, Action? lowerLimit = null, Action? upperLimit = null);
internal void PushContext(OpenXmlElement element);
internal void PopContext();
}