Baca informasi font

Jelajahi metrik font dengan Aspose.Font API Solution untuk C++. Pelajari wawasan mendetail tentang setiap guratan, kurva, dan nuansa. Solusi kami memungkinkan Anda bekerja dengan mesin terbang dengan mudah, memungkinkan Anda mengekstrak informasi tentang karakteristik unik font apa pun.

 

Selami dunia kemungkinan font dengan Aspose.Font API Solution untuk C++ yang menawarkan serangkaian fitur canggih, termasuk konversi font, manipulasi mesin terbang, deteksi simbol Latin, dan banyak lagi. API kami juga memberdayakan Anda untuk bekerja dengan mesin terbang dan mendapatkan informasi tentang mesin terbang yang disertakan dalam font. Tingkatkan desain Anda, tingkatkan proyek Anda, dan buka potensi penuh mesin terbang dengan Aspose.Font untuk C++. Jangan menunggu dan dapatkan uji coba gratis!

Mesin terbang adalah desain unik untuk karakter atau simbol dalam jenis huruf. Untuk memahami unit font ini dengan lebih baik, baca artikel Pengantar Glyph . Metrik font adalah ukuran dan spesifikasi yang digunakan untuk menggambarkan tampilan visual dari jenis huruf. Metrik ini dapat mencakup informasi seperti tinggi karakter, lebar karakter, jarak antar karakter, dan posisi garis dasar, antara lain. Mereka memungkinkan perancang dan pengembang perangkat lunak untuk secara akurat memprediksi tata letak teks dalam dokumen digital dan antarmuka pengguna.

Halaman ini menjelaskan cara mengambil metrik font yang berbeda seperti jumlah mesin terbang, tinggi huruf, lebar mesin terbang ‘A’, dll. Namun, fungsionalitas penuh bekerja dengan mesin terbang dijelaskan secara rinci dalam artikel Menggunakan objek Glyph. Contoh kode menyertakan bagian tentang mengambil metadata font, termasuk nama font. Jenis fungsi ini dapat diintegrasikan ke dalam aplikasi web, seperti aplikasi Font Metadata yang tersedia di ekosistem Aspose. Jika Anda ingin mempelajari contoh lengkap dan file data, buka Aspose Proyek Github .

Untuk menerima metrik font, kami membutuhkan:

  • Aspose.Font untuk C++ API yang merupakan API konversi dan manipulasi dokumen yang kaya fitur, kuat, dan mudah digunakan.

  • Buka manajer paket NuGet, dan cari Aspose.Font dan instal. Anda juga dapat menggunakan perintah berikut dari Package Manager Console.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Langkah-langkah untuk mendapatkan metrik font menggunakan C++:

  1. Ekstrak informasi tentang font yang membuat instance Kelas TtfFont .
  2. Cetak nama font menggunakan properti FontName.
  3. Cetak jumlah mesin terbang dalam font menggunakan properti NumGlyphs. Metrik font, seperti ascender, descender, typo ascender, typo descender, dan UnitsPerEm juga dicetak.
  4. Kode kemudian mengambil tabel penyandian unicode cmap dari font, yang digunakan untuk memetakan kode karakter ke indeks mesin terbang. Ia memeriksa apakah font memiliki tabel cmap dan tabel glyf, yang digunakan untuk mengakses mesin terbang. Jika kedua tabel ada, itu mengambil indeks glyf untuk karakter A dan kemudian mendapatkan mesin terbang untuk simbol A.
  5. Cetak kotak pembatas glif A dan lebarnya.

Kode C++ untuk mendapatkan informasi tentang mesin terbang font

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



FAQ

1. Apa itu metrik font?

Ini adalah properti yang menentukan cara font ditampilkan di layar. Beberapa metrik seperti pendakian, penurunan, lebar, dan kerning mirip dengan Metrik mesin terbang .

2. Bagaimana cara mendapatkan metrik font?

Tentukan font yang ingin Anda kerjakan. Dengan menggunakan properti antarmuka Kelas Aspose.Font.IFontMetrics, ekstrak informasi tentang metrik font yang Anda perlukan.

3. Apa itu font Metadata?

Font Metadata pada dasarnya adalah informasi tentangnya. Ini mencakup banyak data seperti Nama Font, Nama Keluarga Font, Nama Postscript, lisensi, informasi penulis dan perancang, dan banyak lagi.

4. Bagaimana cara mengubah metadata font?

Untuk melihat atau mengubah informasi font secara online, gunakan aplikasi Font Metadata kami.