Загрузка файлов шрифтов из массива байтов
Решение на C++ API для загрузки шрифтов TTF, WOFF, EOT, Type 1 и CFF из MemoryStream.
Решение Aspose.Font API предоставляет вам широкие возможности для работы со шрифтами, включая преобразование, манипулирование глифами, распознавание латинских символов и многое другое. Но первым шагом в работе со шрифтами является загрузка файлов шрифтов для их последующего использования.
В этой статье описывается, как загружать файлы шрифтов из потоков, но для получения более подробной информации о загрузке шрифтов обратитесь к статье Как загружать файлы? . Там вы найдете множество примеров кода на C++ и поймете объекты и параметры, необходимые для загрузки шрифтов.
API поддерживает несколько форматов шрифтов, включая TrueType (один шрифт), TrueType (коллекция шрифтов), Web Open Font Format, Web Open Font Format версии 2.0, Embedded OpenType, шрифты Adobe Type 1 (pfa, pfb, afm, pfm) и Compact Font Format. Приведенные фрагменты кода демонстрируют, как загрузить файл шрифта TrueType (TTF) из потока.
Как мы можем узнать из Википедии , TTF расшифровывается как TrueType Font и представляет собой формат файлов для масштабируемых компьютерных шрифтов. Первоначально он был разработан компанией Apple Computer, но сейчас широко используется в операционных системах Mac и Windows. Файлы TTF содержат инструкции о том, как отображать каждый символ шрифта при разных размерах и стилях, и их можно легко изменять в размере и использовать в различных приложениях без потери качества. Шрифты TTF широко используются в цифровой типографике и часто применяются в веб-дизайне, текстовых редакторах и настольных издательских системах.
Для загрузки шрифтов вам потребуется API Aspose.Font для C++, который представляет собой мощный и простой в использовании API для манипулирования документами и их преобразования для платформы C++. Чтобы получить API, откройте менеджер пакетов NuGet и найдите Aspose.Font, затем установите его. Вы также можете использовать следующую команду в консоли диспетчера пакетов.
Package Manager Console Command
PM> Install-Package Aspose.Font
Загрузка TTF из массива байтов/MemoryStream с использованием C++
Этот фрагмент кода написан на C++ и демонстрирует, как загрузить файл шрифта TrueType (TTF) с использованием API Aspose.Font. Код выполняет следующие шаги:
- Создает путь к файлу шрифта. Здесь DataDir — это предопределенная переменная, содержащая путь к каталогу, где находится файл шрифта Montserrat-Regular.ttf. Метод Path.Combine объединяет два пути для создания полного пути к файлу шрифта.
- Загружает двоичные данные шрифта в массив байтов. Метод File.ReadAllBytes() считывает содержимое файла шрифта и возвращает данные в виде массива байтов.
- Инициализирует объект FontDefinition . FontType.TTF указывает, что файл шрифта является шрифтом TrueType (.ttf), а новый ByteContentStreamSource (fontBytes) создает объект ByteContentStreamSource на основе двоичных данных шрифта, хранящихся в массиве fontBytes.
- Загрузка шрифта. Метод Font.Open() принимает объект FontDefinition в качестве параметра и возвращает загруженный шрифт, который затем можно использовать для дальнейших манипуляций.
Код на C++ для загрузки шрифтов из потока
using Aspose::Font;
using Aspose::Font::Sources;
using Aspose::Font::Ttf; // Construct the path to the file
System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
// Load font binary data into the byte array
System::ArrayPtr<uint8_t> fontBytes = System::IO::File::ReadAllBytes(fontPath);
// Initialize the FontDefinition object passing TTF as the FontType value, "ttf" as the fileExtension value,
// and ByteContentStreamSource object based on the fontBytes array
System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition (Aspose::Font::FontType::TTF, u"ttf", System::MakeObject<ByteContentStreamSource>(fontBytes));
// Load the font
System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);