UnicodeRanges.vb
C# 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.Text
'' This sample lists Unicode ranges available in each system font.public class UnicodeRanges Function CreatePDF(ByVal stream As Stream) As Integer '' Setup: Dim doc = New GcPdfDocument() Dim tl = New TextLayout(72) With { .MaxWidth = doc.PageSize.Width, .MaxHeight = doc.PageSize.Height, .MarginAll = 72 } tl.DefaultFormat.FontSize = 7 Dim tfH = New TextFormat() With {.Font = StandardFonts.TimesBold, .FontSize = 12} Dim tfP = New TextFormat() With {.Font = StandardFonts.Times, .FontSize = 11}
'' Loop through all system fonts, '' list Unicode ranges provided by each font: For Each font In FontCollection.SystemFonts tl.AppendLine($"{font.FontFileName} [{font.FullFontName}] [{font.FontFamilyName}]", tfH) Dim shot = font.CreateFontTables(TableTag.OS2) tl.AppendLine(shot.GetUnicodeRanges(), tfP) tl.AppendLine() Next
'' Split and render TextLayout as shown in the PaginatedText sample: Dim tso = New TextSplitOptions(tl) With { .MinLinesInFirstParagraph = 2, .MinLinesInLastParagraph = 2 } tl.PerformLayout(True) While True Dim rest As TextLayout = Nothing Dim SplitResult = tl.Split(tso, rest) doc.Pages.Add().Graphics.DrawTextLayout(tl, PointF.Empty) If SplitResult <> SplitResult.Split Then Exit While End If tl = rest End While '' '' Done: doc.Save(stream) Return doc.Pages.Count End FunctionEnd Class