Load a font from TTF file | .NET

Here are described four differently fulfilled examples on how to load a font from the file Montserrat-Regular.ttf.


First learn the loading fundamentals at the How to load fonts? page.

Add the next namespaces at the head of the file:

1using System;
2using Aspose.Font;
3using Aspose.Font.Sources;
4using System.IO;

Loading from the file using FileSystemStreamSource object

Take the next steps to fulfil the operation:

  1. Construct path to the file.
  2. Initiate FontDefiniton object.
  3. Set fileExtension to ttf.
  4. Load the font.
 1    // Construct path to the file
 2    string fontPath = Path.Combine(DataDir, "Montserrat-Regular.ttf");
 3
 4    // Initialize FontDefinition object passing TTF as FontType value and using FontFileDefinition
 5    FontFileDefinition fileDef = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));
 6
 7    // Based on FileSystemStreamSource object, set fileExtension to "ttf"
 8    FontDefinition fontDef = new FontDefinition(FontType.TTF, fileDef);
 9
10    // Load the font
11    Font font = Font.Open(fontDef);

Loading from the file using FileInfo object

To fulfil loading do the next:

  1. Construct path to the file.
  2. Initiate FontDefiniton object passing TTF as FontType value.
  3. Get automatically calculated value fileExtension.
  4. Load the font.
 1     // Construct path to the file
 2     string fontPath = Path.Combine(DataDir, "Montserrat-Regular.ttf");
 3
 4     // Initialize FontDefinition object passing TTF as FontType value and using FontFileDefinition
 5     FontFileDefinition fileDef = new FontFileDefinition(new FileInfo(fontPath));
 6
 7     // Based on FileInfo object, fileExtension value is calculated automatically from FileInfo fields.
 8     FontDefinition fontDef = new FontDefinition(FontType.TTF, fileDef);
 9
10     // Load the font
11     Font font = Font.Open(fontDef);

Loading from the file excluding FontFileDefinition object from initialization chain

The next actions have to be taken to load the font this way:

  1. Construct path to the file.
  2. Initiate FontDefiniton object passing TTF as FontType value, ttf as fileExtension value and FileSystemStreamSource object. Parameter fileExtension here is not a duplicate value for parameter FontType.
  3. Load the font.
 1     // Construct path to the file
 2     string fontPath = Path.Combine(DataDir, "Montserrat-Regular.ttf");
 3
 4     // Initialize FontDefinition object passing TTF as FontType value, "ttf" as fileExtension value, 
 5     // and FileSystemStreamSource object. Parameter 'fileExtension' here is not duplicate value 
 6     // for parameter 'FontType' and it's needed for correct font format detection
 7     FontDefinition fontDef = new FontDefinition(FontType.TTF, "ttf", new FileSystemStreamSource(fontPath));
 8
 9     // Load the font
10     Font font = Font.Open(fontDef);     

Loading the font from the byte array

To load the font from the byte array:

  1. Construct path to the file.
  2. Load font binary data into the byte array.
  3. Initialize FontDefiniton object passing TTF as FontType value,ttf as fileExtension value, and ByteContentStreamSource object based on fontBytes array.
  4. Load the font.
 1     // Construct path to the file
 2     string fontPath = Path.Combine(DataDir, "Montserrat-Regular.ttf");
 3
 4     // Load font binary data into byte array
 5     byte[] fontBytes = File.ReadAllBytes(fontPath);
 6
 7     // Initialize FontDefinition object  passing TTF as FontType value, "ttf" as fileExtension value, 
 8     // and ByteContentStreamSource object based on fontBytes array
 9     FontDefinition fontDef = new FontDefinition(FontType.TTF), "ttf", new ByteContentStreamSource(fontBytes);
10
11     // Load the font
12     Font font = Font.Open(fontDef);

You can get examples on how to use Aspose.Font in Aspose.Font.Examples.sln solution, in the net-examples of the Aspose.Font Documentation.

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.