TabsAlignment.vb
'' 完毕:
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Drawing
'' 此示例演示如何使用 TextLayout.TabStops 呈现列
'' 以不同方式对齐的浮点数:
'' - 通过 TabStopAlignment.Separator 在小数点上对齐;
'' - 使用 TabStopAlignment.Leading 在制表符位置上左对齐;
'' - 使用 TabStopAlignment.Center 以选项卡位置为中心;
'' - 使用 TabStopAlignment.Trailing 在选项卡位置右对齐。
Public Class TabsAlignment
Function CreatePDF(ByVal stream As Stream) As Integer
'' 创建并设置文档:
Dim doc = New GcPdfDocument()
Dim page = doc.NewPage()
Dim g = page.Graphics
'' 创建并设置一个 TextLayout 对象来打印文本:
Dim tl = g.CreateTextLayout()
tl.MaxWidth = page.Size.Width
tl.MaxHeight = page.Size.Height
tl.MarginLeft = 36
tl.MarginRight = 36
tl.MarginTop = 36
tl.MarginBottom = 36
tl.DefaultFormat.Font = StandardFonts.Times
tl.DefaultFormat.FontSize = 10
tl.DefaultFormat.BackColor = Color.FromArgb(217, 217, 217)
'' 添加具有不同对齐类型的制表位
'' (第一个选项卡的构造函数创建一个 TabStopAlignment.Separator TabStop):
tl.TabStops = New List(Of TabStop)() From {
New TabStop(72, "."c),
New TabStop(72 * 2.5F, TabStopAlignment.Leading),
New TabStop(72 * 5, TabStopAlignment.Center),
New TabStop(72 * 7.5F, TabStopAlignment.Trailing)
}
'' 渲染示例文本:
tl.Append($"TabStopAlignment:{vbCrLf}{vbTab}Separator '.'{vbTab}Leading{vbTab}Center{vbTab}Trailing{vbCrLf}")
Dim v0 As Double = 1
Dim q As Double = (1 + Math.Sqrt(5)) / 2
For i = 1 To 50
tl.Append($"{vbTab}{v0:R}{vbTab}{v0:R}{vbTab}{v0:R}{vbTab}{v0:R}{vbCrLf}")
v0 *= q
Next
tl.PerformLayout(True)
'' 绘制文本和图像:
g.DrawTextLayout(tl, PointF.Empty)
''
'' 完毕:
doc.Save(stream)
Return doc.Pages.Count
End Function
End Class