public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementItalic(); BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyInlineProperties(element, buildContext.ElementStyle); BuildHelper.ApplyInlineProperties(element, elementMetadata); // Генерация содержимого элемента var inlines = buildContext.ElementBuilder.BuildElements(buildContext, elementMetadata.Inlines); if (inlines != null) { foreach (var inline in inlines) { element.Inlines.Add(inline); } } BuildHelper.PostApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.PostApplyTextProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementParagraph { Margin = BuildHelper.DefaultMargin, Padding = BuildHelper.DefaultPadding }; BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); ApplyIndent(element, elementMetadata); // Генерация содержимого элемента var contentContext = CreateContentContext(element, buildContext); var inlines = buildContext.ElementBuilder.BuildElements(contentContext, elementMetadata.Inlines); if (inlines != null) { foreach (var inline in inlines) { element.Inlines.Add(inline); } } BuildHelper.PostApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.PostApplyTextProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementPageBreak(); BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { PrintElementImage element = CreateBarcodeImage(buildContext, elementMetadata); BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyInlineProperties(element, buildContext.ElementStyle); BuildHelper.ApplyInlineProperties(element, elementMetadata); return(element); }
private static void CreateStaticTableRows(PrintElementBuildContext buildContext, PrintElementTable table, dynamic rows) { if (rows != null) { var rowIndex = 0; var columnCount = table.Columns.Count; var skippedCells = new List <int>(); foreach (var rowMetadata in rows) { var tableRow = new PrintElementTableRow(); if (rowMetadata != null) { var rowStyle = buildContext.FindStyle(rowMetadata.Style); // Установка общих свойств для текста BuildHelper.ApplyTextProperties(tableRow, rowStyle); BuildHelper.ApplyTextProperties(tableRow, rowMetadata); for (var columnIndex = 0; columnIndex < columnCount; ++columnIndex) { var cellOffset = GetCellOffset(columnCount, rowIndex, columnIndex); // Если ячейку не нужно отображать (из-за настроек RowSpan или ColumnSpan) if (!skippedCells.Contains(cellOffset)) { var cellMetadata = (rowMetadata.Cells != null) ? Enumerable.ElementAtOrDefault(rowMetadata.Cells, columnIndex) : null; var tableCell = CreateTableCell(buildContext, table, columnIndex, cellMetadata, true); tableRow.Cells.Add(tableCell); AddSkippedCells(skippedCells, columnCount, rowIndex, columnIndex, cellMetadata); } } // Пост-установка общих свойств для текста BuildHelper.PostApplyTextProperties(tableRow, rowStyle); BuildHelper.PostApplyTextProperties(tableRow, rowMetadata); } buildContext.MapElement(tableRow, rowMetadata); table.Rows.Add(tableRow); ++rowIndex; } } }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementRun(); BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyInlineProperties(element, buildContext.ElementStyle); BuildHelper.ApplyInlineProperties(element, elementMetadata); ApplyText(element, buildContext, elementMetadata); BuildHelper.PostApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.PostApplyTextProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementLine { Border = new PrintElementBorder { Thickness = new PrintElementThickness(0, 0, 0, 1), Color = "Black" } }; BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintViewDocument { Font = new PrintElementFont { Family = BuildHelper.DefautlFontFamily } }; // Установка стилей печатного представления ApplyPrintViewStyles(buildContext, elementMetadata.Styles); // Установка общих свойств печатного представления BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); // Настройка размеров страницы печатного представления ApplyPageSize(element, elementMetadata.PageSize); ApplyPagePadding(element, elementMetadata.PagePadding); // Настройка размеров колонки печатного представления var contentWidth = CalcContentWidth(element); // Генерация содержимого печатного представления var contentContext = buildContext.Create(contentWidth); var blocks = buildContext.ElementBuilder.BuildElements(contentContext, elementMetadata.Blocks); if (blocks != null) { foreach (var block in blocks) { element.Blocks.Add(block); } } BuildHelper.PostApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.PostApplyTextProperties(element, elementMetadata); return(element); }
private static PrintElementTableCell CreateTableCell(PrintElementBuildContext buildContext, PrintElementTable table, int columnIndex, dynamic cellMetadata, bool applySpan) { var tableCell = new PrintElementTableCell { ColumnSpan = 1, RowSpan = 1, Border = new PrintElementBorder { Thickness = new PrintElementThickness(0, 0, 1, 1), Color = PrintElementColors.Black }, Padding = BuildHelper.DefaultPadding }; if (cellMetadata != null) { var cellStyle = buildContext.FindStyle(cellMetadata.Style); // Установка общих свойств для текста BuildHelper.ApplyTextProperties(tableCell, cellStyle); BuildHelper.ApplyTextProperties(tableCell, cellMetadata); // Установка общих свойств ячейки таблицы BuildHelper.ApplyTableCellProperties(tableCell, cellStyle); BuildHelper.ApplyTableCellProperties(tableCell, cellMetadata); // Объединение ячеек по горизонтали и вертикали if (applySpan) { tableCell.ColumnSpan = GetCellSpan(cellMetadata.ColumnSpan); tableCell.RowSpan = GetCellSpan(cellMetadata.RowSpan); } // Вычисление ширины ячейки для размещения содержимого var cellWidth = 0.0; for (var i = columnIndex; (i < columnIndex + tableCell.ColumnSpan) && (i < table.Columns.Count); ++i) { cellWidth += table.Columns[i].Size.Value; } cellWidth = BuildHelper.CalcContentWidth(cellWidth, tableCell.Padding, tableCell.Border.Thickness); // Создание содержимого и помещение его в ячейку var cellContext = buildContext.Create(cellWidth); var cellContent = buildContext.ElementBuilder.BuildElement(cellContext, cellMetadata.Block); if (cellContent is PrintElementBlock) { tableCell.Block = cellContent; } // Пост-установка общих свойств для текста BuildHelper.PostApplyTextProperties(tableCell, cellStyle); BuildHelper.PostApplyTextProperties(tableCell, cellMetadata); } buildContext.MapElement(tableCell, cellMetadata); return(tableCell); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementTable { Border = new PrintElementBorder { Thickness = new PrintElementThickness(1, 1, 0, 0), Color = PrintElementColors.Black }, Margin = BuildHelper.DefaultMargin, Padding = BuildHelper.DefaultPadding, }; BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); // Генерация стобцов таблицы CreateTableColumns(buildContext, element, elementMetadata.Columns); // Генерация заголовка таблицы bool showHeader; if (!ConvertHelper.TryToBool(elementMetadata.ShowHeader, out showHeader) || showHeader) { var tableRow = CreateHeaderTableRow(buildContext, element, elementMetadata.Columns); element.Rows.Add(tableRow); } // Генерация явно объявленных строк таблицы CreateStaticTableRows(buildContext, element, elementMetadata.Rows); // Генерация строк таблицы по данным источника var tableSource = buildContext.ElementSourceValue; if (ConvertHelper.ObjectIsCollection(tableSource)) { if (HasCellTemplate(elementMetadata.Columns)) { foreach (var rowSource in (IEnumerable)tableSource) { var tableRow = CreateDynamicTableRow(buildContext, element, elementMetadata.Columns, rowSource); element.Rows.Add(tableRow); } } } else if (buildContext.IsDesignMode) { // Отображение шаблона строки в дизайнере if (HasCellTemplate(elementMetadata.Columns)) { var tableRow = CreateDynamicTableRow(buildContext, element, elementMetadata.Columns, null); element.Rows.Add(tableRow); } } BuildHelper.PostApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.PostApplyTextProperties(element, elementMetadata); return(element); }
public object Create(PrintElementBuildContext buildContext, dynamic elementMetadata) { var element = new PrintElementList { Margin = BuildHelper.DefaultMargin, Padding = BuildHelper.DefaultPadding, MarkerStyle = PrintElementListMarkerStyle.None }; BuildHelper.ApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.ApplyTextProperties(element, elementMetadata); BuildHelper.ApplyBlockProperties(element, buildContext.ElementStyle); BuildHelper.ApplyBlockProperties(element, elementMetadata); ApplyStartIndex(element, elementMetadata.StartIndex); ApplyMarkerStyle(element, elementMetadata.MarkerStyle); MarkerOffsetStyle(element, elementMetadata.MarkerOffsetSize, elementMetadata.MarkerOffsetSizeUnit); var itemContext = CreateItemContext(element, buildContext); // Генерация явно объявленных элементов списка var staticItems = buildContext.ElementBuilder.BuildElements(itemContext, elementMetadata.Items); if (staticItems != null) { foreach (var staticItem in staticItems) { var listItem = new PrintElementSection(); listItem.Blocks.Add(staticItem); element.Items.Add(listItem); } } // Генерация элементов списка по данным источника var listItemTemplate = elementMetadata.ItemTemplate; var listSource = buildContext.ElementSourceValue; if (listItemTemplate != null) { if (ConvertHelper.ObjectIsCollection(listSource)) { foreach (var itemSource in (IEnumerable)listSource) { itemContext.ElementSourceValue = itemSource; var dynamicItem = buildContext.ElementBuilder.BuildElement(itemContext, listItemTemplate); if (dynamicItem is PrintElementBlock) { var listItem = new PrintElementSection(); listItem.Blocks.Add(dynamicItem); element.Items.Add(listItem); } } } else if (buildContext.IsDesignMode) { // Отображение шаблона элемента в дизайнере itemContext.ElementSourceValue = null; var dynamicItem = buildContext.ElementBuilder.BuildElement(itemContext, listItemTemplate); if (dynamicItem is PrintElementBlock) { var listItem = new PrintElementSection(); listItem.Blocks.Add(dynamicItem); element.Items.Add(listItem); } } } BuildHelper.PostApplyTextProperties(element, buildContext.ElementStyle); BuildHelper.PostApplyTextProperties(element, elementMetadata); return(element); }