Чтение информации о шрифте
Изучите метрики шрифтов с помощью решения Aspose.Font API для C++. Узнайте подробную информацию о каждом штрихе, кривой и нюансе. Наше решение позволяет легко работать с глифами, позволяя извлекать информацию об уникальных характеристиках любого шрифта.
Погрузитесь в мир возможностей шрифтов с помощью решения Aspose.Font API для C++, которое предлагает вам набор мощных функций, включая преобразование шрифтов, манипулирование глифами, обнаружение латинских символов и многое другое. Наш API также позволяет вам работать с глифами и получать информацию о глифах, включенных в шрифт. Улучшите свои проекты, усовершенствуйте свои проекты и раскройте весь потенциал глифов с помощью Aspose.Font для C++. Не ждите и получите бесплатную пробную версию!
Глиф — это уникальный дизайн символа или символа шрифта. Чтобы лучше понять этот шрифт, прочитайте статью Introduction to Glyph . описать внешний вид шрифта. Эти показатели могут включать в себя, среди прочего, такую информацию, как высота символов, ширина символов, расстояние между символами и положение базовой линии. Они позволяют дизайнерам и разработчикам программного обеспечения точно прогнозировать расположение текста в цифровых документах и пользовательских интерфейсах.
На этой странице объясняется, как получить различные метрики шрифта, такие как количество глифов, высота букв, ширина глифа «A» и т. д. Однако полная функциональность работы с глифами подробно описана в статье «Использование объектов глифов». Пример кода включает раздел по получению метаданных шрифта, включая имя шрифта. Этот тип функций может быть интегрирован в веб-приложения, такие как приложение Font Metadata , доступное в экосистеме Aspose. Если вы хотите изучить полные примеры и файлы данных, перейдите на Aspose Github Project .
Для получения метрик шрифта нам необходимо:
Aspose.Font for C++ API — многофункциональный, мощный и простой в использовании API для обработки и преобразования документов.
Откройте диспетчер пакетов NuGet, найдите Aspose.Font и установите его. Вы также можете использовать следующую команду из консоли диспетчера пакетов.
Package Manager Console Command
PM> Install-Package Aspose.Font
Шаги для получения метрик шрифта с помощью C++:
- Извлеките информации о шрифте, создающем экземпляр класса TtfFont .
- Напечатайте имя шрифта, используя свойство FontName.
- Распечатайте количество глифов в шрифте, используя свойство NumGlyphs. Метрики шрифта, такие как надстрочный элемент, нижний элемент, верхний элемент опечатки, нижний элемент опечатки и UnitsPerEm, также печатаются.
- Затем код извлекает из шрифта таблицу кодировки Unicode
cmap
, которая используется для сопоставления кодов символов с индексами глифов. Он проверяет, есть ли у шрифта как таблица cmap, так и таблица glyf, которая используется для доступа к глифам. Если присутствуют обе таблицы, он извлекает индекс глифа для символаA
, а затем получает глиф для символаA
. - Распечатайте ограничивающую рамку глифа «A» и его ширину.
Код С++ для получения информации о глифах шрифта
using Aspose::Font;
using Aspose::Font::Glyphs;
using Aspose::Font::Ttf;
//Font file name with the full path
System::SharedPtr<FontDefinition> fd = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, System::MakeObject<FontFileDefinition>(u"ttf", System::MakeObject<FileSystemStreamSource>(fileName)));
System::SharedPtr<TtfFont> font = System::DynamicCast_noexcept<Aspose::Font::Ttf::TtfFont>(Aspose::Font::Font::Open(fd));
System::String name = font->get_FontName();
System::Console::WriteLine(System::String(u"Font name: ") + name);
System::Console::WriteLine(System::String(u"Glyph count: ") + font->get_NumGlyphs());
System::String metrics = System::String::Format(u"Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}", font->get_Metrics()->get_Ascender(), font->get_Metrics()->get_Descender(), font->get_Metrics()->get_TypoAscender(), font->get_Metrics()->get_TypoDescender(), font->get_Metrics()->get_UnitsPerEM());
System::Console::WriteLine(metrics);
//Get cmap unicode encoding table from the font as object TtfCMapFormatBaseTable to access the information about the font glyph for symbol 'A'.
//Also check that font has object TtfGlyfTable (table 'glyf') to access glyph.
System::SharedPtr<Aspose::Font::TtfCMapFormats::TtfCMapFormatBaseTable> cmapTable;
if (font->get_TtfTables()->get_CMapTable() != nullptr)
{
cmapTable = font->get_TtfTables()->get_CMapTable()->FindUnicodeTable();
}
if (cmapTable != nullptr && font->get_TtfTables()->get_GlyfTable() != nullptr)
{
System::Console::WriteLine(System::String(u"Font cmap unicode table: PlatformID = ") + cmapTable->get_PlatformId() + u", PlatformSpecificID = " + cmapTable->get_PlatformSpecificId());
//Code for 'A' symbol
char16_t unicode = (char16_t)65;
//Glyph index for 'A'
uint32_t glIndex = cmapTable->GetGlyphIndex(unicode);
if (glIndex != static_cast<uint32_t>(0))
{
//Glyph for 'A'
System::SharedPtr<Glyph> glyph = font->GetGlyphById(glIndex);
if (glyph != nullptr)
{
//Print glyph metrics
System::Console::WriteLine(u"Glyph metrics for 'A' symbol:");
System::String bbox = System::String::Format(System::String(u"Glyph BBox: Xmin = {0}, Xmax = {1}") + u", Ymin = {2}, Ymax = {3}", glyph->get_GlyphBBox()->get_XMin(), glyph->get_GlyphBBox()->get_XMax(), glyph->get_GlyphBBox()->get_YMin(), glyph->get_GlyphBBox()->get_YMax());
System::Console::WriteLine(bbox);
System::Console::WriteLine(System::String(u"Width:") + font->get_Metrics()->GetGlyphWidth(System::MakeObject<GlyphUInt32Id>(glIndex)));
}
}
}
Часто задаваемые вопросы
1. Что такое метрика шрифта?
Это свойство определяет способ отображения шрифта на экране. Некоторые метрики, такие как восхождение, спуск, ширина и кернинг, аналогичны метрикам глифов .
2. Как получить метрики шрифта?
Укажите шрифт, с которым вы хотите работать. Используя свойства интерфейса класса Aspose.Font.IFontMetrics, извлеките необходимую информацию о метриках шрифта.
3. Что такое метаданные шрифта?
Метаданные шрифта — это в основном информация о нем. Он включает в себя множество данных, таких как имя шрифта, имя семейства шрифтов, имя постскриптума, лицензирование, информацию об авторе и дизайнере и многое другое.
4. Как изменить метаданные шрифта?
Чтобы просмотреть или изменить информацию о шрифте онлайн, используйте наше приложение Метаданные шрифта .