public void AddColumn(string name, float width, DPrintAlignment alignment) { DPrintItemDataColumn column = new DPrintItemDataColumn(); column.Name = name; column.Width = width; column.Alignment = alignment; _Columns.Add(column); }
public void AddItemText(string text, Font printFont = null, DPrintAlignment alignment = DPrintAlignment.None) { DPrintItemText item = new DPrintItemText(); item.Text = text; item.PrintFont = printFont; item.Alignment = alignment; _Items.Add(item); }
public DPrintItemTableColumn AddColumn(string name, float width, DPrintAlignment alignment = DPrintAlignment.None) { DPrintItemTableColumn column = new DPrintItemTableColumn(); column.Name = name; column.Width = width; column.Alignment = alignment; _Columns.Add(column); return(column); }
private StringAlignment CastToStringAlignment(DPrintAlignment value) { switch (value) { case DPrintAlignment.Far: return(StringAlignment.Far); case DPrintAlignment.Center: return(StringAlignment.Center); case DPrintAlignment.Near: default: return(StringAlignment.Near); } }
/// <summary> /// Принтиране на елемент /// </summary> private float PrintItem(PrintPageEventArgs e, float startY, float startX, float endX , DPrintItem item, Font parentFont = null, DPrintAlignment alignment = DPrintAlignment.None) { Type itemType = item.GetType(); // Текст if (itemType == typeof(DPrintItemText)) { DPrintItemText itemText = (DPrintItemText)item; if (itemText.PrintFont == null) { itemText.PrintFont = parentFont; } if (itemText.Alignment == DPrintAlignment.None) { itemText.Alignment = alignment; } return(PrintItemText(e, startY, startX, endX, itemText)); } // Таблица else if (itemType == typeof(DPrintItemTable)) { return(PrintItemTable(e, startY, startX, endX, (DPrintItemTable)item)); } // Празно място else if (itemType == typeof(DPrintItemBlank)) { return(PrintItemBlank(e, startY, startX, endX, (DPrintItemBlank)item)); } // от средата на стр. else if (itemType == typeof(DPrintFromMiddlePage)) { return(pDocument.DefaultPageSettings.PaperSize.Height / 2); } // DataTable else if (itemType == typeof(DPrintItemDataRow)) { return(PrintItemDataRow(e, startY, startX, endX, (DPrintItemDataRow)item)); } else { return(startY); } }
/// <summary> /// Принтиране на ред от таблица /// </summary> private float PrintItemTableRow(PrintPageEventArgs e, float startY, PointF[] cols , DPrintItemTableRow item, DPrintItemTable table) { float maxCellY = startY; // Принтира данните на клетката for (int colIndex = 0; colIndex < cols.Length; colIndex++) { // Позиция на колоната PointF col = cols[colIndex]; // Принтира елемента if (colIndex < item.Cells.Count) { DPrintItemTableCell cell = item.Cells[colIndex]; DPrintAlignment columnAlignment = DPrintAlignment.None; if (table.Columns.Count > colIndex) { DPrintItemTableColumn column = table.Columns[colIndex]; columnAlignment = column.Alignment; } float cellY = PrintItem(e, startY, col.X, col.Y, cell.Item , table.CellFont, columnAlignment); // Максималната височина на клетката if (cellY > maxCellY) { maxCellY = cellY; } } } // Слага рамка на клетките if (table.CellBorder == DPrintBorderType.Solid) { for (int colIndex = 0; colIndex < cols.Length; colIndex++) { // Позиция на колоната PointF col = cols[colIndex]; PrintItemBorder(e.Graphics, col.X, startY, col.Y, maxCellY); } } return(maxCellY); }
/// <summary> /// Принтир ред от DataTable /// </summary> private float PrintItemDataRow(PrintPageEventArgs e, float startY, float startX, float endX, DPrintItemDataRow item) { // Margins float startTableY = startY + item.Margins.Top; float startTableX = startX + item.Margins.Left; float endTableX = endX - item.Margins.Right; // край на таблицата по Y float endY = startTableY; PointF[] cols = item.DTable.GetColumns(startTableX, endTableX); for (int colIndex = 0; colIndex < cols.Length; colIndex++) { // Позиция на колоната PointF col = cols[colIndex]; // Принтира елемента if (colIndex < item.Cells.Count) { DPrintItem cell = item.Cells[colIndex]; DPrintAlignment columnAlignment = DPrintAlignment.None; if (item.DTable.Columns.Count > colIndex) { DPrintItemDataColumn column = item.DTable.Columns[colIndex]; columnAlignment = column.Alignment; } if (cell.BackgroundColor.IsEmpty) { cell.BackgroundColor = item.BackgroundColor; } if (item.CountTextLine > 1) { Type itemType = cell.GetType(); // Текст if (itemType == typeof(DPrintItemText)) { DPrintItemText cellText = (DPrintItemText)cell; cellText.CountTextLine = item.CountTextLine; } } float cellY = PrintItem(e, startY, col.X, col.Y, cell , item.DTable.CellFont, columnAlignment); // Максималната височина на клетката if (cellY > endY) { endY = cellY; } // Слага рамка на клетката if (item.CellBorder == DPrintBorderType.Solid) { PrintItemBorder(e.Graphics, col.X, startY, col.Y, endY); } } } // Слага рамка на реда if (item.Border == DPrintBorderType.Solid) { PrintItemBorder(e.Graphics, startX, startY, endX, endY); } return(endY); }