TableTextAlign.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 GCTEXT = GrapeCity.Documents.Text;
- using GCDRAW = GrapeCity.Documents.Drawing;
-
- namespace DsPdfWeb.Demos
- {
- // This example shows how to draw a table with different
- // alignments of texts and paragraphs in table cells,
- // using the GrapeCity.Documents.Drawing.TableRenderer and related classes.
- public class TableTextAlign
- {
- 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 void DrawTable(GcGraphics g, float pageWidth, float pageHeight)
- {
- var host = new LayoutHost();
- var view = host.CreateView(pageWidth, pageHeight);
-
- var rt = view.CreateRect();
- rt.AnchorTopLeft(null, 30, 20);
-
- var ta = new TableRenderer(g,
- rt, FixedTableSides.TopLeft,
- rowCount: 4,
- columnCount: 3,
- gridLineColor: Color.Black,
- gridLineWidth: 1,
- rowMinHeight: 28);
-
- var columns = ta.ColumnRects;
- columns[0].SetWidth(150);
- columns[1].SetWidth(200);
- columns[2].SetWidth(200);
-
- var fmtNorm = new TextFormat
- {
- Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "times.ttf")),
- FontSize = 25,
- FontSizeInGraphicUnits = true,
- FontFeatures = new FontFeature[] { new FontFeature(FeatureTag.dlig) }
- };
- var fmtOrange = new TextFormat(fmtNorm)
- {
- ForeColor = Color.Orange
- };
-
- var cs = new CellStyle
- {
- PaddingLeftRight = 15,
- PaddingBottom = 3,
- TextAlignment = TextAlignment.Center,
- TextFormat = fmtNorm,
- CreateTextLayout = (g, cs, data) =>
- {
- var tl = g.CreateTextLayout();
- tl.TextExtensionStrategy = TextExtensionStrategy.Excel;
- tl.Append((string)data, cs.TextFormat);
- return tl;
- }
- };
- ta.DefaultCellStyle = cs;
-
- ta.AddCell(0, 0, "Column 1");
- ta.AddCell(0, 1, "Column 2");
- ta.AddCell(0, 2, "Column 3");
-
- ta.AddCell(new CellStyle(cs) { ParagraphAlignment = ParagraphAlignment.Far, FillColor = Color.LemonChiffon },
- 1, 0, "One-liner.");
- ta.AddCell(new CellStyle(cs) { ParagraphAlignment = ParagraphAlignment.Center },
- 1, 1, "Multi-line and centered text.");
- ta.AddCell(new CellStyle(cs) { TextAlignment = TextAlignment.Distributed },
- 1, 2, "A multi-line piece of text that is distributed within the table cell.");
-
- ta.AddCell(2, 0, "Apple");
- ta.AddCell(2, 1, "Banana");
- ta.AddCell(new CellStyle(cs) { TextFormat = fmtOrange }, 2, 2, "Orange");
- ta.AddCell(3, 0, "Apple");
- ta.AddCell(3, 1, "Banana");
- ta.AddCell(3, 2, "Orange");
-
- ta.Render();
- }
- }
- }
-