TableNoSides.cs
//// This code is part of Document Solutions for Imaging demos.// Copyright (c) MESCIUS inc. All rights reserved.//using System;using System.IO;using System.Drawing;using GrapeCity.Documents.Drawing;using GrapeCity.Documents.Text;using GrapeCity.Documents.Imaging;using GrapeCity.Documents.Layout;using GCTEXT = GrapeCity.Documents.Text;
namespace DsImagingWeb.Demos{ // This example shows how to draw a simple table // with a grid that has no left and right borders, // using the GrapeCity.Documents.Drawing.TableRenderer and related classes. public class TableNoSides { public GcBitmap GenerateImage(Size pixelSize, float dpi, bool opaque, string[] sampleParams = null) { var bmp = new GcBitmap(pixelSize.Width, pixelSize.Height, opaque, dpi, dpi); using var g = bmp.CreateGraphics(Color.White); DrawTable(g, pixelSize.Width, pixelSize.Height); return bmp; }
static void DrawTable(GcGraphics g, float pageWidth, float pageHeight) { var host = new LayoutHost(); var view = host.CreateView(pageWidth, pageHeight);
var rt = view.CreateRect(); rt.AnchorTopLeftRight(null, 30, 20, 20);
var ta = new TableRenderer(g, rt, FixedTableSides.TopLeftRight, rowCount: 17, columnCount: 4, gridLineColor: Color.SlateBlue, gridLineWidth: 2, rowMinHeight: 20);
var columns = ta.ColumnRects; columns[0].SetWidth(40); columns[1].SetStarWidth(150); columns[2].SetStarWidth(250); columns[3].SetStarWidth(250);
ta.SetVerticalGridLineWidth(0, 0); ta.SetVerticalGridLineWidth(4, 0);
ta.SetHorizontalGridLineWidth(0, 5); ta.SetHorizontalGridLineWidth(1, 5); ta.SetHorizontalGridLineWidth(17, 5);
var fmt1 = new TextFormat { Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "FreeSans.ttf")), FontSize = 16f, FontSizeInGraphicUnits = true }; var cs = new CellStyle { PaddingTop = 2, PaddingBottom = 5, PaddingLeftRight = 10, TextFormat = fmt1, TextAlignment = TextAlignment.Trailing }; var csBold = new CellStyle(cs) { TextAlignment = TextAlignment.Center, TextFormat = new TextFormat(fmt1) { FontBold = true } }; var csText = new CellStyle(cs) { TextAlignment = TextAlignment.Leading, };
ta.AddCell(csBold, 0, 0, "#"); ta.AddCell(csBold, 0, 1, "Name"); ta.AddCell(csBold, 0, 2, "Value"); ta.AddCell(csBold, 0, 3, "Comment"); for (int i = 1; i <= 16; i++) { ta.AddCell(cs, i, 0, $"{i}"); ta.AddCell(csText, i, 1, $"Math.Sqrt({i})"); ta.AddCell(cs, i, 2, Math.Sqrt(i).ToString()); ta.AddCell(csText, i, 3, $"Square root of {i}"); }
ta.Render(); } }}