Завантажити шрифт із файлу CFF | C++

На цій сторінці ми розглянемо приклади завантаження шрифту CenturyGothic, розміщеного у файлі CenturyGothic.cff.


Якщо ви не читали основи завантаження Aspose.Font, перейдіть до Як завантажити шрифти? сторінка.

Спочатку вам потрібно повідомити наступні простори імен у заголовку файлу:

1using namespace Aspose::Font;
2using namespace Aspose::Font::Sources;
3using namespace System.IO;

Завантаження з файлу за допомогою об’єкта FileInfo

Дотримуйтесь алгоритму виконання завантаження шрифту:

  1. Побудувати шлях до файлу.
  2. Ініціювати об’єкт FontDefiniton, передаючи CFF як значення FontType.
  3. Отримати автоматично розраховане значення Розширення файлу.
  4. Завантажте шрифт.
 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);

Завантаження шрифту за допомогою змінної типу byte[] та використання об’єкта типу ByteContentStreamSource

Щоб завантажити шрифт таким чином, потрібно виконати наступні кроки:

  1. Побудувати шлях до файлу.
  2. Ініціалізуйте об’єкт FontDefiniton, передаючи CFF як значення FontType, cff як значення FileExtension і ByteContentStreamSource об’єкт на основі масиву fontBytes.
  3. Завантажте шрифт.
 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.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.