TabsAlignment.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.Collections.Generic;
- using GrapeCity.Documents.Pdf;
- using GrapeCity.Documents.Text;
- using GrapeCity.Documents.Drawing;
-
- namespace DsPdfWeb.Demos.Basics
- {
- // This sample demonstrates how to use TextLayout.TabStops to render columns
- // of floating point numbers aligned in different ways:
- // - aligned on the decimal point via TabStopAlignment.Separator;
- // - left-aligned on the tab position using TabStopAlignment.Leading;
- // - centered around the tab position using TabStopAlignment.Center;
- // - right-aligned on the tab position using TabStopAlignment.Trailing.
- public class TabsAlignment
- {
- public int CreatePDF(Stream stream)
- {
- // Create and set up the document:
- var doc = new GcPdfDocument();
- var page = doc.NewPage();
- var g = page.Graphics;
- // Create and set up a TextLayout object to print the text:
- var tl = g.CreateTextLayout();
- tl.MaxWidth = page.Size.Width;
- tl.MaxHeight = page.Size.Height;
- tl.MarginLeft = tl.MarginRight = tl.MarginTop = tl.MarginBottom = 36;
- tl.DefaultFormat.Font = StandardFonts.Times;
- tl.DefaultFormat.FontSize = 10;
- tl.DefaultFormat.BackColor = Color.FromArgb(217, 217, 217);
- // Add tab stops with different alignment types
- // (the first tab's ctor creates a TabStopAlignment.Separator TabStop):
- tl.TabStops = new List<TabStop>()
- {
- new TabStop(72, '.'),
- new TabStop(72 * 2.5f, TabStopAlignment.Leading),
- new TabStop(72 * 5, TabStopAlignment.Center),
- new TabStop(72 * 7.5f, TabStopAlignment.Trailing),
- };
- // Render sample text:
- tl.Append($"TabStopAlignment:\r\n\tSeparator '.'\tLeading\tCenter\tTrailing\r\n");
- double v0 = 1;
- double q = (1 + Math.Sqrt(5)) / 2;
- for (int i = 1; i < 50; ++i)
- {
- tl.Append($"\t{v0:R}\t{v0:R}\t{v0:R}\t{v0:R}\r\n");
- v0 *= q;
- }
- tl.PerformLayout(true);
- // Draw the text and images:
- g.DrawTextLayout(tl, PointF.Empty);
- // Done:
- doc.Save(stream);
- return doc.Pages.Count;
- }
- }
- }
-