TabsAlignment.cs
//
// このコードは、DioDocs for PDF のサンプルの一部として提供されています。
// © 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
{
// このサンプルは、TextLayout.TabStops を使用して、浮動小数点数の列を
// さまざまな方法で整列する方法を示します。
// - TabStopAlignment.Separator を使用して小数点位置を揃えます。
// - TabStopAlignment.Leading を使用してタブ位置を左揃えにします。
// - TabStopAlignment.Center を使用してタブの位置を中央揃えにします。
// - TabStopAlignment.Trailing を使用して、タブの位置を右揃えにします。
public class TabsAlignment
{
public int CreatePDF(Stream stream)
{
// ドキュメントを作成して設定します。
var doc = new GcPdfDocument();
var page = doc.NewPage();
var g = page.Graphics;
// テキストを出力するための TextLayout オブジェクトを作成して設定します。
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.FontName = "Yu Gothic";
tl.DefaultFormat.FontSize = 10;
tl.DefaultFormat.BackColor = Color.FromArgb(217, 217, 217);
// 異なる配置タイプのタブストップを追加します
// (最初のタブのコンストラクタは 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),
};
// サンプルテキストを描画します。
tl.Append($"タブストップの位置:\r\n\tセパレータ= '.'\t左揃え\t中央寄せ\t右揃え\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);
// テキストとイメージを描画します。
g.DrawTextLayout(tl, PointF.Empty);
// PDF ドキュメントを保存します。
doc.Save(stream);
return doc.Pages.Count;
}
}
}