namespace QWERTYkez.WordProcessor; public interface ITable { /// Базовый шрифт, используемый по умолчанию для содержимого таблицы. FontProps BaseFont { get; } /// Добавляет строку в таблицу, настраиваемую с помощью . /// Делегат для конфигурации строки через . /// Тот же экземпляр для цепочки вызовов. ITable Row(Action configure); /// Добавляет строку с указанной высотой, настраиваемую с помощью . /// Высота строки в сантиметрах. /// Делегат для конфигурации строки через . /// Тот же экземпляр для цепочки вызовов. ITable Row(double height, Action configure); /// Добавляет строку с ячейками, содержащими заданные тексты, используя указанный шрифт. /// Шрифт для всех ячеек строки. /// Массив текстов для ячеек. /// Тот же экземпляр для цепочки вызовов. ITable RowWithCells(FontProps font, params string[] cellTexts); /// Добавляет строку с ячейками, содержащими заданные тексты, используя базовый шрифт таблицы. /// Массив текстов для ячеек. /// Тот же экземпляр для цепочки вызовов. ITable RowWithCells(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 Cell(Action configure); /// Добавляет ячейку с заданными свойствами (без текста). /// Свойства ячейки (ширина, объединение, вертикальное выравнивание). /// Тот же экземпляр для цепочки вызовов. IRow Cell(CellProps cellProps); /// Добавляет ячейку с заданными свойствами и текстом (используется базовый шрифт). /// Свойства ячейки. /// Текст ячейки. /// Тот же экземпляр для цепочки вызовов. IRow Cell(CellProps cellProps, string text); /// Добавляет ячейку с заданными свойствами, текстом и указанным шрифтом. /// Свойства ячейки. /// Текст ячейки. /// Шрифт для текста. Если , используется базовый шрифт. /// Тот же экземпляр для цепочки вызовов. IRow Cell(CellProps cellProps, string text, FontProps font); /// Добавляет ячейку с простым текстом (используется базовый шрифт). /// Текст ячейки. /// Тот же экземпляр для цепочки вызовов. IRow Cell(string text); /// Добавляет ячейку с простым текстом и указанным шрифтом. /// Текст ячейки. /// Шрифт для текста. Если , используется базовый шрифт. /// Тот же экземпляр для цепочки вызовов. IRow Cell(string text, FontProps font); /// Добавляет ячейку, содержащую один абзац, построенный с помощью . /// Делегат для конфигурации абзаца через . /// Тот же экземпляр для цепочки вызовов. IRow CellWithPara(Action configure); /// Добавляет ячейку с указанными свойствами, содержащую один абзац, построенный с помощью . /// Свойства ячейки. /// Делегат для конфигурации абзаца через . /// Тот же экземпляр для цепочки вызовов. IRow CellWithPara(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 Formula(Action configure); /// Добавляет в ячейку абзац, построенный с помощью . /// Делегат для конфигурации абзаца через . /// Тот же экземпляр для цепочки вызовов. ICell Paragraph(Action configure); /// Добавляет в ячейку абзац, состоящий из нескольких строк текста (разделённых переносами). /// Массив строк, каждая строка будет размещена на новой строке абзаца. /// Тот же экземпляр для цепочки вызовов. ICell Paragraph(params string[] lines); /// Добавляет в ячейку абзац с указанным текстом и опциональным шрифтом. /// Текст абзаца. /// Шрифт для текста. Если , используется базовый шрифт. /// Тот же экземпляр для цепочки вызовов. ICell Paragraph(string text, FontProps? font = null); /// Устанавливает свойства ячейки (ширина, объединение, вертикальное выравнивание). /// Свойства ячейки. /// Тот же экземпляр для цепочки вызовов. ICell SetCellProps(CellProps props); /// Создаёт объект на основе выполненных настроек. /// Готовый объект для вставки в строку. internal TableCell Build(); } public interface IText { /// Базовый шрифт, используемый по умолчанию для содержимого текстового блока. FontProps BaseFont { get; } /// Добавляет в документ абзац, содержащий математическую формулу. /// Делегат для конфигурации формулы через . /// Тот же экземпляр для цепочки вызовов. IText Formula(Action configure); /// Добавляет абзац, построенный с помощью . /// Делегат для конфигурации абзаца через . /// Тот же экземпляр для цепочки вызовов. IText Paragraph(Action configure); /// Добавляет абзац, состоящий из нескольких строк текста (разделённых переносами). /// Массив строк, каждая строка будет размещена на новой строке абзаца. /// Тот же экземпляр для цепочки вызовов. IText Paragraph(params string[] lines); /// Добавляет абзац с указанным текстом и опциональным шрифтом. /// Текст абзаца. /// Шрифт для текста. Если , используется базовый шрифт. /// Тот же экземпляр для цепочки вызовов. IText Paragraph(string text, FontProps? font = null); /// Создаёт список абзацев на основе выполненных настроек. /// Список готовых абзацев для вставки в документ. internal List Build(); } public interface IParagraph { /// Базовый шрифт, используемый по умолчанию для содержимого абзаца. FontProps BaseFont { get; } /// Добавляет в абзац математическую формулу (внутри отдельного ). /// Делегат для конфигурации формулы через . /// Тот же экземпляр для цепочки вызовов. IParagraph Formula(Action configure); /// Добавляет в абзац математическую формулу (внутри отдельного ) и разрыв строки () в текущий абзац. /// Делегат для конфигурации формулы через . /// Тот же экземпляр для цепочки вызовов. IParagraph FormulaBreak(Action configure); /// Добавляет разрыв строки () в текущий абзац. /// Тот же экземпляр для цепочки вызовов. IParagraph Break(); /// Добавляет разрыв строки () в текущий абзац. /// Тот же экземпляр для цепочки вызовов. IParagraph BreakPage(); /// Добавляет текстовый фрагмент () с указанным текстом и опциональным шрифтом. /// Текст фрагмента. /// Шрифт для текста. Если , используется базовый шрифт. /// Тот же экземпляр для цепочки вызовов. IParagraph Run(string text, FontProps? font = null); /// Добавляет текстовый фрагмент () с указанным текстом и опциональным шрифтом и разрыв строки () в текущий абзац. /// Текст фрагмента. /// Шрифт для текста. Если , используется базовый шрифт. /// Тот же экземпляр для цепочки вызовов. IParagraph RunBreak(string text, FontProps? font = null); /// Добавляет текстовый фрагмент с полным контролем над свойствами . /// Текст фрагмента. /// Делегат для настройки свойств фрагмента. /// Тот же экземпляр для цепочки вызовов. IParagraph RunWithCustomProps(string text, Action configure); /// Добавляет текстовый фрагмент, отформатированный как нижний индекс (). /// Текст фрагмента. /// Базовый шрифт (свойства будут переопределены). /// Тот же экземпляр для цепочки вызовов. IParagraph Sub(string text, FontProps? font = null); /// Добавляет текстовый фрагмент, отформатированный как верхний индекс (). /// Текст фрагмента. /// Базовый шрифт (свойства будут переопределены). /// Тот же экземпляр для цепочки вызовов. IParagraph Sup(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(); }