Yazı tipi bilgilerini oku

Aspose.Font API Solution for C++ ile yazı tipi ölçümlerini keşfedin. Her vuruş, eğri ve nüans hakkında ayrıntılı bilgiler öğrenin. Çözümümüz, herhangi bir yazı tipinin benzersiz özellikleri hakkında bilgi edinmenize olanak tanıyarak gliflerle zahmetsizce çalışmanıza olanak tanır.

 

Yazı tipi dönüştürme, glif işleme, Latin sembolü algılama ve daha fazlasını içeren güçlü özelliklerden oluşan bir kit sunan Aspose.Font API Solution for C++ ile yazı tipi olanakları dünyasına dalın. API'miz aynı zamanda gliflerle çalışmanıza ve bir yazı tipinde yer alan glifler hakkında bilgi edinmenize de olanak sağlar. Aspose.Font for C++ ile tasarımlarınızı geliştirin, projelerinizi güçlendirin ve gliflerin tüm potansiyelini ortaya çıkarın. Beklemeyin ve ücretsiz deneme sürümünü edinin!

Glif, bir yazı tipindeki bir karakter veya sembol için benzersiz bir tasarımdır. Bu yazı tipi birimini daha iyi anlamak için Glif’e Giriş makalesini okuyun. Yazı tipi ölçümleri, Bir yazı tipinin görsel görünümünü tanımlar. Bu ölçümler, diğerlerinin yanı sıra karakterlerin yüksekliği, karakterlerin genişliği, karakterler arasındaki boşluk ve taban çizgisinin konumu gibi bilgileri içerebilir. Tasarımcıların ve yazılım geliştiricilerin, dijital belgelerdeki ve kullanıcı arayüzlerindeki metin düzenini doğru bir şekilde tahmin etmelerine olanak tanır.

Bu sayfada, glif sayısı, harf yüksekliği, ‘A’ glifinin genişliği vb. gibi farklı yazı tipi ölçümlerinin nasıl alınacağı açıklanmaktadır. Ancak, gliflerle çalışmanın tam işlevselliği, Glif nesnelerini kullanma makalesinde ayrıntılı olarak açıklanmaktadır. Kod örneği, yazı tipi adı da dahil olmak üzere yazı tipi meta verilerinin alınmasıyla ilgili bir bölüm içerir. Bu tür işlevsellik, Aspose ekosisteminde bulunan Font Metadata uygulaması gibi web uygulamalarına entegre edilebilir. Tüm örnekleri ve veri dosyalarını öğrenmek istiyorsanız lütfen Aspose Github Project adresine gidin.

Yazı tipi ölçümlerini almak için şunlara ihtiyacımız var:

  • Zengin özelliklere sahip, güçlü ve kullanımı kolay bir belge işleme ve dönüştürme API'si olan Aspose.Font for C++ API.

  • NuGet paket yöneticisini açın ve Aspose.Font'u arayın ve kurun. Paket Yöneticisi Konsolundan aşağıdaki komutu da kullanabilirsiniz.

Package Manager Console Command


    PM> Install-Package Aspose.Font

C++ kullanarak yazı tipi ölçümlerini alma adımları:

  1. TtfFont Sınıfının bir örneğini oluşturan bir yazı tipi hakkında bilgi ayıklayın.
  2. FontName özelliğini kullanarak yazı tipinin adını yazdırın.
  3. NumGlyphs özelliğini kullanarak yazı tipindeki gliflerin sayısını yazdırın. Ayrıca yükseliş, iniş, yazım hatası yükselişi, yazım hatası iniş ve UnitsPerEm gibi yazı tipi ölçümleri de yazdırılır.
  4. Kod daha sonra karakter kodlarını glif indekslerine eşlemek için kullanılan yazı tipinden “cmap” unicode kodlama tablosunu alır. Yazı tipinin hem “cmap” tablosuna hem de gliflere erişmek için kullanılan “glyf” tablosuna sahip olup olmadığını kontrol eder. Her iki tablo da mevcutsa, “A” karakteri için “glyf” dizinini alır ve ardından “A” sembolü için glifi alır.
  5. “A” glifinin sınırlayıcı kutusunu ve genişliğini yazdırın.

Yazı tipinin glifleri hakkında bilgi almak için C++ Kodu

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



SSS

1. Yazı tipi ölçüsü nedir?

Yazı tipinin ekranda nasıl görüneceğini belirleyen özelliktir. Yükselme, alçalma, genişlik ve karakter aralığı gibi bazı metrikler Glif metriklerine benzer.

2. Yazı tipi ölçümlerini nasıl alabilirim?

Çalışmak istediğiniz yazı tipini belirtin. Aspose.Font.IFontMetrics Class arayüzünün özelliklerini kullanarak ihtiyacınız olan font metrikleri hakkındaki bilgileri çıkarın.

3. Yazı tipi meta verileri nedir?

Yazı Tipi Meta Verisi, temel olarak onunla ilgili bilgilerdir. Font Adı, Font Ailesi Adı, Postscript Adı, lisanslama, yazar ve tasarımcı bilgileri ve çok daha fazlasını içerir.

4. Yazı tipi meta verilerini nasıl değiştiririm?

Yazı tipi bilgilerini çevrimiçi olarak görmek veya değiştirmek için Yazı Tipi Meta Verileri uygulamamızı kullanın.