EmptyTable.cs
C# VB
//// This code is part of Document Solutions for PDF .NET demos.// Copyright (c) MESCIUS inc. All rights reserved.//using System.IO;using System.Drawing;using GrapeCity.Documents.Pdf;using GrapeCity.Documents.Text;using GrapeCity.Documents.Drawing;using GrapeCity.Documents.Layout.Composition;using GCTEXT = GrapeCity.Documents.Text;using GCDRAW = GrapeCity.Documents.Drawing;
namespace DsPdfWeb.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. public class EmptyTable { public int CreatePDF(Stream stream) { var doc = new GcPdfDocument(); var g = doc.NewPage().Graphics;
DrawTable(g, g.CanvasSize.Width, g.CanvasSize.Height);
// Save the PDF: doc.Save(stream); return doc.Pages.Count; }
static readonly TextFormat FormatDesc = new TextFormat() { Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "NotoSans-Regular.ttf")), FontSize = 16, FontSizeInGraphicUnits = true, ForeColor = Color.White };
static void DrawTable(GcGraphics g, float pageWidth, float pageHeight) { var surf = new Surface(); 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 = new TableRenderer(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 = new FrameStyle { 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, new PointF(0, rc.Bottom + 10));
g.Transform = v.Layer.Surface.BaseTransform; ta.Render(); };
surf.Render(g); } }}