TextJustifyRules.vb
'''' This code is part of Document Solutions for PDF .NET demos.'' Copyright (c) MESCIUS inc. All rights reserved.''Imports System.IOImports System.DrawingImports GrapeCity.Documents.PdfImports GrapeCity.Documents.TextImports GCTEXT = GrapeCity.Documents.Text
Public Class TextJustifyRules Public Function CreatePDF(ByVal stream As Stream) As Integer Dim fntInfo = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "NotoSans-Bold.ttf")) Dim fntText = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "NotoSansJP-Regular.ttf"))
Dim doc = New GcPdfDocument() Dim page = doc.NewPage() Dim g = page.Graphics
Dim tl = g.CreateTextLayout() tl.TextAlignment = TextAlignment.Distributed tl.JustifiedSpaceExtension = 0F tl.JustifiedTextExtension = 20F
Dim tf = New TextFormat With {.FontSize = 24F, .Font = fntText} Dim tfInfo = New TextFormat With {.FontSize = 11F, .Font = fntInfo}
Dim marginx As Single = 120, marginy As Single = 36 tl.MaxWidth = page.Size.Width - marginx * 2 Dim text = "abcdefg!1010101010abc999999-12345本列島で使され99 555"
Dim DrawTextLocal As Func(Of TextLayout, Single, Single) = Function(tlArg As TextLayout, yArg As Single) As Single Dim pt = New PointF(marginx, yArg + 20) tlArg.Append(text, tf) tlArg.PerformLayout(True) Dim rcLocal = New RectangleF(pt, New SizeF(tlArg.ContentWidth, tlArg.ContentHeight)) g.FillRectangle(rcLocal, Color.PaleGoldenrod) g.DrawString($"LineBreakingRules.{tlArg.LineBreakingRules}, TextExtensionStrategy.{tlArg.TextExtensionStrategy}:", tfInfo, New PointF(marginx / 2F, yArg)) g.DrawTextLayout(tlArg, pt) tlArg.Clear() Return rcLocal.Bottom + 16 End Function
Dim y As Single = marginy y = DrawTextLocal(tl, y) tl.TextExtensionStrategy = TextExtensionStrategy.EastAsianExcel y = DrawTextLocal(tl, y) tl.TextExtensionStrategy = TextExtensionStrategy.Excel y = DrawTextLocal(tl, y) tl.LineBreakingRules = LineBreakingRules.Simplified tl.WordBoundaryRules = WordBoundaryRules.Simplified tl.TextExtensionStrategy = TextExtensionStrategy.Default y = DrawTextLocal(tl, y) tl.TextExtensionStrategy = TextExtensionStrategy.EastAsianExcel y = DrawTextLocal(tl, y) tl.TextExtensionStrategy = TextExtensionStrategy.Excel y = DrawTextLocal(tl, y)
doc.Save(stream) Return doc.Pages.Count End FunctionEnd Class