Load a font from TTF file | C++
Contents
[
Hide
Show
]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 namespace Aspose::Font;
2using namespace Aspose::Font::Sources;
3using namespace System.IO;
Loading from the file using FileSystemStreamSource object
Take the next steps to fulfil the operation:
- Construct path to the file.
- Initiate FontDefiniton object.
- Set
fileExtension to
ttf
. - Load the font.
1 // Construct path to the file
2 System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
3
4 // Initialize FontDefinition object passing TTF as FontType value and using FontFileDefinition
5 // based on FileSystemStreamSource object, set fileExtension to "ttf"
6 System::SharedPtr<FontFileDefinition> fileDef = System::MakeObject<FontFileDefinition>(u"ttf", System::MakeObject<FileSystemStreamSource>(fontPath));
7 System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, fileDef);
8
9 // Load font
10 System::SharedPtr<Font> font = Font::Open(fontDef);
Loading from the file using FileInfo object
To fulfil loading do the next:
- Construct path to the file.
- Initiate
FontDefiniton object passing
TTF
as FontType value. - Get automatically calculated value fileExtension.
- Load the font.
1 // Construct path to the file
2 System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
3
4 // Initialize FontDefinition object passing TTF as FontType value and using FontFileDefinition
5 // based on FileInfo object, fileExtension value is calculated automatically from FileInfo fields.
6 System::SharedPtr<FontFileDefinition> fileDef = System::MakeObject<FontFileDefinition>(System::MakeObject<System::IO::FileInfo>(fontPath));
7 System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, fileDef);
8
9 // Load the font
10 System::SharedPtr<Aspose::Font::Font> font = Aspose::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:
- Construct path to the file.
- 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. - Load the font.
1 // Construct path to the file
2 System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"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 System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, u"ttf", System::MakeObject<FileSystemStreamSource>(fontPath));
8
9 // Load the font
10 System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);
Loading the font from the byte array
To load the font from the byte array:
- Construct path to the file.
- Load font binary data into the byte array.
- Initialize
FontDefiniton object passing
TTF
as FontType value,ttf
as fileExtension value, and ByteContentStreamSource object based on fontBytes array. - Load the font.
1 // Construct path to the file
2 System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
3
4 // Load font binary data into byte array
5 System::ArrayPtr<uint8_t> fontBytes = System::IO::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 System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, u"ttf", System::MakeObject<ByteContentStreamSource>(fontBytes));
10
11 // Load the font
12 System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);
More examples on how to use Aspose.Font are in Aspose.Font.Examples.CPP.sln solution, in the cpp-examples of the Aspose.Font Documentation.