//// This code is part of Document Solutions for Imaging demos.// Copyright (c) MESCIUS inc. All rights reserved.//usingSystem.IO;usingSystem.Drawing;usingGrapeCity.Documents.Drawing;usingGrapeCity.Documents.Text;usingGrapeCity.Documents.Imaging;usingGrapeCity.Documents.Layout.Composition;usingGCTEXT = GrapeCity.Documents.Text; namespaceDsImagingWeb.Demos{// This example shows how to draw a simple empty table,// using the GrapeCity.Documents.Layout.Composition.Surface and// GrapeCity.Documents.Drawing.TableRenderer classes.// This example highlights the main elements of the table layout// that can be created using the TableRenderer class.publicclassEmptyTable {publicGcBitmapGenerateImage(Size pixelSize, float dpi, bool opaque, string[] sampleParams = null) {var bmp = newGcBitmap(pixelSize.Width, pixelSize.Height, opaque, dpi, dpi);usingvar g = bmp.CreateGraphics(Color.White);DrawTable(g, pixelSize.Width, pixelSize.Height);return bmp; } staticreadonlyTextFormatFormatDesc = newTextFormat() {Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "FreeSans.ttf")),FontSize = 24,FontSizeInGraphicUnits = true,ForeColor = Color.White }; staticvoidDrawTable(GcGraphics g, float pageWidth, float pageHeight) {var surf = newSurface();var view = surf.CreateView(pageWidth, pageHeight); // Fill the page with Gray color. view.CreateVisual((g, v) => { g.FillRectangle(v.AsRectF(), Color.Gray); }).LayoutRect.AnchorExact(null); var vTable = view.CreateVisual();var tableRect = vTable.LayoutRect; tableRect.AnchorTopLeftRight(null, 36, 36, 36); // The paddingAll parameter adds padding to the table grid relative to the table rectangle.var ta = newTableRenderer(g, tableRect, FixedTableSides.TopLeftRight, rowCount: 3, columnCount: 3, gridLineColor: Color.Yellow, gridLineWidth: 5, rowMinHeight: 100, paddingAll: 40); var columns = ta.ColumnRects; columns[0].SetStarWidth(1); columns[1].SetWidth(100); columns[2].SetStarWidth(3); ta.TableFrameStyle = newFrameStyle {LinePaddingAll = 20,LineColor = Color.SlateBlue,FillColor = Color.LightGreen,LineWidth = 10f }; ta.ApplyCellConstraints(); vTable.Draw = (g, v) => {var rc = v.AsRectF(); g.FillRectangle(rc, Color.White); var tl = g.CreateTextLayout(); tl.AppendLine("Table rectangle (tableRect) is White,", FormatDesc); tl.AppendLine("Padding of the table frame is 20 (TableFrameStyle.LinePaddingAll),", FormatDesc); tl.AppendLine("Frame line width is 10 (TableFrameStyle.LineWidth),", FormatDesc); tl.AppendLine("Frame line color is SlateBlue (TableFrameStyle.LineColor),", FormatDesc); tl.AppendLine("Frame area color is LightGreen (TableFrameStyle.FillColor),", FormatDesc); tl.AppendLine("Padding of the table grid is 40 (the paddingAll parameter),", FormatDesc); tl.AppendLine("Table grid line width is 5 (the gridLineWidth parameter),", FormatDesc); tl.AppendLine("Grid line color is Yellow (the gridLineColor parameter).", FormatDesc); g.DrawTextLayout(tl, newPointF(0, rc.Bottom + 10)); g.Transform = v.Layer.Surface.BaseTransform; ta.Render(); }; surf.Render(g); } }}