BoldItalicEmulation.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.TextImports GCTEXT = GrapeCity.Documents.Text
'' Sample shows how to control bold and/or italic emulation when using normal fonts.Public Class BoldItalicEmulation Function CreatePDF(ByVal stream As Stream) As Integer Dim fc = New FontCollection()
'' Register the font directory for convenience: '' fc.RegisterDirectory(Path.Combine("Resources", "Fonts")) '' Or individual fonts for more control: fc.RegisterFont(Path.Combine("Resources", "Fonts", "NotoSerif-Regular.ttf")) fc.RegisterFont(Path.Combine("Resources", "Fonts", "NotoSerif-Bold.ttf")) fc.RegisterFont(Path.Combine("Resources", "Fonts", "NotoSerif-Italic.ttf")) fc.RegisterFont(Path.Combine("Resources", "Fonts", "NotoSerif-BoldItalic.ttf"))
Dim doc = New GcPdfDocument() Dim g = doc.NewPage().Graphics Dim rc = Util.AddNote( "TextFormat.FontStyle enables using Bold and/or Italic emulation" + vbLf + "on a regular (not a bold/italic) font.", doc.Pages.Last) '' Text insertion point: Dim ip = New PointF(rc.Left, rc.Bottom + 36) Dim tf = New TextFormat() '' We specifically get a non-bold/non-italic version of the font: tf.Font = fc.FindFamilyName("Noto Serif", False, False) tf.FontSize = 16 g.DrawString($"Regular Noto Serif font: {tf.Font.FullFontName}", tf, ip) ip.Y += 36 '' Draw some strings using the same (regular) font but emulating bold and italic: tf.FontStyle = GCTEXT.FontStyle.Bold g.DrawString($"Bold emulation using font: {tf.Font.FullFontName}", tf, ip) ip.Y += 36 tf.FontStyle = GCTEXT.FontStyle.Italic g.DrawString($"Italic emulation using font: {tf.Font.FullFontName}", tf, ip) ip.Y += 36 tf.FontStyle = GCTEXT.FontStyle.BoldItalic g.DrawString($"Bold+Italic emulation using font: {tf.Font.FullFontName}", tf, ip) ip.Y += 36 '' '' Now we render some strings using the "real" bold/italic variants of the font: tf.FontStyle = GCTEXT.FontStyle.Regular tf.Font = fc.FindFamilyName("Noto Serif", True, False) g.DrawString($"Using real bold font: {tf.Font.FullFontName}", tf, ip) ip.Y += 36 tf.Font = fc.FindFamilyName("Noto Serif", False, True) g.DrawString($"Using real italic font: {tf.Font.FullFontName}", tf, ip) ip.Y += 36 tf.Font = fc.FindFamilyName("Noto Serif", True, True) g.DrawString($"Using real bold italic font: {tf.Font.FullFontName}", tf, ip) ip.Y += 36 '' '' Done: doc.Save(stream) Return doc.Pages.Count End FunctionEnd Class