EmptyTable.cs
- //
- // This code is part of Document Solutions for PDF demos.
- // Copyright (c) MESCIUS inc. All rights reserved.
- //
- using System;
- using System.IO;
- using System.Drawing;
- using System.Numerics;
- using GrapeCity.Documents.Pdf;
- using GrapeCity.Documents.Text;
- using GrapeCity.Documents.Common;
- using GrapeCity.Documents.Drawing;
- using GrapeCity.Documents.Layout;
- 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", "segoeui.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);
- }
- }
- }
-