Olvassa el a betűtípus-információkat

Fedezze fel a betűtípus-metrikákat az Aspose.Font API megoldással C++-hoz. Ismerje meg a részletes betekintést minden ütésről, ívről és árnyalatról. Megoldásunk segítségével könnyedén dolgozhat a karakterjelekkel, így bármilyen betűtípus egyedi jellemzőiről információkat nyerhet ki.

 

Merüljön el a betűtípuslehetőségek világában az Aspose.Font API C++ megoldással, amely hatékony funkciókat kínál, beleértve a betűtípus-konverziókat, a karakterjel-manipulációt, a latin szimbólumok felismerését és még sok mást. API-nk arra is lehetőséget ad, hogy karakterjelekkel dolgozzon, és információkat szerezzen a betűtípusokban található karakterjelekről. Emelje fel a terveket, töltse fel projektjeit, és tárja fel a karakterjelekben rejlő teljes potenciált az Aspose.Font for C++ segítségével. Ne várjon, és szerezzen ingyenes próbaverziót!

A karakterjel egy karakter vagy szimbólum egyedi kialakítása a betűtípusban. A betűtípus-egység jobb megértéséhez olvassa el a Bevezetés a Glyph-ba cikket. A betűtípusmérők olyan mérések és specifikációk, amelyeket írja le a betűtípus vizuális megjelenését. Ezek a mutatók többek között olyan információkat tartalmazhatnak, mint a karakterek magassága, a karakterek szélessége, a karakterek közötti távolság és az alapvonal helyzete. Lehetővé teszik a tervezők és szoftverfejlesztők számára, hogy pontosan megjósolják a szöveg elrendezését a digitális dokumentumokban és a felhasználói felületeken.

Ez az oldal elmagyarázza, hogyan lehet lekérni a különböző betűtípus-mérőszámokat, például a karakterjelek számát, a betűmagasságot, az „A” karakterjel szélességét stb. A karakterjelekkel való munkavégzés teljes funkcionalitását azonban részletesen ismerteti a Karakterjel-objektumok használata című cikk. A kódpélda tartalmaz egy részt a betűtípus-metaadatok lekérésére vonatkozóan, beleértve a betűtípus nevét. Ez a fajta funkció integrálható webes alkalmazásokba, például az Aspose ökoszisztémában elérhető Font Metadata alkalmazásba. Ha teljes példákat és adatfájlokat szeretne megtudni, látogasson el az Aspose oldalára Github Project .

A betűtípus-metrikák fogadásához szükségünk van:

  • Aspose.Font for C++ API, amely funkciókban gazdag, hatékony és könnyen használható dokumentumkezelési és -konverziós API.

  • Nyissa meg a NuGet csomagkezelőt, keresse meg az Aspose.Font elemet, és telepítse. A következő parancsot is használhatja a Package Manager konzolból.

Package Manager Console Command


    PM> Install-Package Aspose.Font

A betűtípus-metrikák lekérésének lépései C++ használatával:

  1. Kivonat információkat a TtfFont osztály példányát létrehozó betűtípusról.
  2. Nyomtassa ki a betűtípus nevét a FontName tulajdonság használatával.
  3. A NumGlyphs tulajdonság segítségével nyomtassa ki a betűkészletben lévő karakterjelek számát. A betűtípus-metrikák, például a növekvő, a descender, a typo ascender, a typo descender és az UnitsPerEm szintén kinyomtatásra kerülnek.
  4. A kód ezután lekéri a cmap unicode kódolási táblázatot a betűtípusból, amely a karakterkódok karakterkód-indexekre való leképezésére szolgál. Ellenőrzi, hogy a betűtípus rendelkezik-e a “cmap” és a “glyf” táblával is, amely a karakterjelek elérésére szolgál. Ha mindkét tábla megtalálható, akkor lekéri az „A” karakter „glyf” indexét, majd lekéri az „A” szimbólum karakterjelét.
  5. Nyomtassa ki az “A” karakterjel határolókeretét és szélességét.

C++ kód, amellyel információt kaphat a betűtípus karakterjeleiről

    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)));
            }
        }
    }



GYIK

1. Mi a betűtípus mérőszáma?

Ez a tulajdonság határozza meg, hogy a betűtípus hogyan jelenjen meg a képernyőn. Egyes mutatók, például az emelkedés, az ereszkedés, a szélesség és a bevágás hasonló a Glyph metrikákhoz .

2. Hogyan szerezhetek be betűtípus-mutatókat?

Adja meg a fontot, amellyel dolgozni szeretne. Az Aspose.Font.IFontMetrics osztály felület tulajdonságainak használatával kinyerje ki a szükséges információkat a betűtípus-metrikákról.

3. Mi a betűtípus metaadata?

A Font Metadata alapvetően információk róla. Számos adatot tartalmaz, mint például a betűtípus neve, a betűtípus családneve, az utóirat neve, az engedélyezés, a szerzői és tervezői információk és még sok más.

4. Hogyan módosíthatom a betűtípus metaadatait?

A betűtípusadatok online megtekintéséhez vagy módosításához használja a Font Metadata alkalmazásunkat.