Load a font from CFF file | C++
Contents
[
Hide
Show
]On this page we will have a look at examples of loading font CenturyGothic
placed in the file CenturyGothic.cff.
If you did not read the Aspose.Font loading fundamentals, go to How to load fonts? page.
First you need to notify 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 FileInfo object
Follow the algorithm to fulfill the font loading:
- Construct path to the file.
- Initiate
FontDefiniton object passing
CFF
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"CenturyGothic.cff");
3
4 // Initialize FontDefinition object passing CFF 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::CFF, fileDef);
8
9 // Load the font
10 System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);
Font loading with the byte[] type variable and with using ByteContentStreamSource type object
To load font this way, you need to take the following steps:
- Construct path to the file.
- Initialize
FontDefiniton object passing
CFF
as FontType value,cff
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"CenturyGothic.cff");
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 CFF as FontType value, "cff" as fileExtension value,
8 // and ByteContentStreamSource object based on fontBytes array
9 System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition>(Aspose::Font::FontType::CFF, u"ttf", System::MakeObject<ByteContentStreamSource>(fontBytes));
10
11 // Load font and print results
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.