public void Print(WordDocumentWriter docWriter, Product product, int?amount = null, ProductBlock block = null) { var tableProperties = docWriter.CreateTableProperties(); tableProperties.Alignment = ParagraphAlignment.Left; tableProperties.PreferredWidthAsPercentage = 100; //выделяем необходимый блок if (block != null && product.ProductBlock.Id == block.Id) { tableProperties.BorderProperties.Color = Colors.Red; tableProperties.BorderProperties.Width = 3; } docWriter.StartTable(2, tableProperties); //Заголовок docWriter.StartTableRow(); Font fontBold = docWriter.CreateFont(); fontBold.Bold = true; var header = amount == null ? $"{product}" : $"{product} x {amount} шт."; docWriter.PrintTableCell(header, docWriter.CellProps(2, null, Colors.AliceBlue), null, fontBold); docWriter.EndTableRow(); //строки параметров foreach (var parameter in product.ProductBlock.GetOrderedParameters()) { docWriter.StartTableRow(); docWriter.PrintTableCell($"{parameter.ParameterGroup}"); docWriter.PrintTableCell($"{parameter}"); docWriter.EndTableRow(); } //печать зависимого оборудования foreach (var dependent in product.DependentProducts) { docWriter.StartTableRow(); docWriter.StartTableCell(docWriter.CellProps(2, Padding.PadAll(0.25f))); Print(docWriter, dependent.Product, dependent.Amount, block); docWriter.EndTableCell(); docWriter.EndTableRow(); } docWriter.EndTable(); }