1. Produk
  2.   Font
  3.   C++
  4.   Aspose.Font for C++

Aspose.Font for C++

 
 

API Fon C++ untuk Membaca, Menyimpan & Menukar Fon

Perpustakaan C++ membolehkan Memuat, Membaca, Menyimpan dan Menukar pelbagai format fon seperti TrueType, WOFF, EOT, OpenType, CFF, dan Type1 dalam aplikasi berasaskan C++.

Aspose.Font untuk C++ adalah alat yang sangat kuat yang mempermudah pengurusan fon dan menawarkan set ciri yang luas untuk pembangun perisian dan pengaturcara. Ia memberi kuasa kepada pembangun C++ untuk bekerja dengan pelbagai format fon dan melaksanakan pelbagai tugas berkaitan fon. Ia membolehkan pembangun perisian memuat naik, menjana, menyunting, dan menukar fail fon dalam pelbagai format, seperti TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT, dan banyak lagi. API ini dapat meningkatkan tugas berkaitan fon anda ke tahap seterusnya tanpa sebarang kebergantungan luaran.

Aspose.Font untuk C++ ialah perpustakaan yang kaya dengan ciri yang menyediakan keupayaan manipulasi fon yang komprehensif untuk pembangun C++. Perpustakaan ini menyokong pelbagai operasi fon, termasuk mengekstrak metadata fon, memuatkan fail fon dari cakera atau aliran, mengakses maklumat glif, menukar fon ke format yang berbeza, membaca maklumat fon, mengemas kini fail fon & menyimpannya ke cakera, membaca maklumat metrik dari fail Fon, merender teks menggunakan glif fon, menggabungkan fon TrueType dan banyak lagi. Ia menyokong sistem operasi 32-bit serta 64-bit.

Aspose.Font untuk C++ menawarkan keupayaan tipografi lanjutan, termasuk pengendalian ligatur, penggantian glif kontekstual dan budi bicara, serta pilihan susun atur teks lanjutan. Ciri-ciri ini sangat berguna apabila bekerja dengan skrip kompleks atau bahasa yang memerlukan pembentukan dan rendering teks yang canggih. API ini bersifat merentas platform dan membolehkan pengguna menggunakannya dengan lancar pada pelbagai sistem operasi, termasuk Windows, Linux, dan macOS. Jika anda ingin meningkatkan keupayaan manipulasi fon dalam aplikasi C++ anda, Aspose.Font pastinya patut dipertimbangkan.

Previous Next

Mula Menggunakan Aspose.Font untuk C++

Cara yang disyorkan untuk memasang Aspose.Font untuk C++ ialah menggunakan NuGet. Sila gunakan perintah berikut untuk pemasangan yang lancar.

Pasang Aspose.Font untuk C++ melalui Perintah NuGet

NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0

Anda boleh memuat turun perpustakaan secara langsung dari Aspose.Font for C++ halaman produk

Penukaran Fon ke Format Fail yang Disokong melalui API C++

Salah satu ciri penting Aspose.Font untuk C++ ialah keupayaannya menukar fon antara pelbagai format fail yang disokong. Ini menjadi sangat memudahkan apabila pembangun perisian perlu menukar fon kepada format tertentu yang serasi dengan persekitaran atau platform sasaran anda. Perpustakaan ini menyokong penukaran tanpa gangguan antara fon TrueType, OpenType, CFF, PostScript Type 1, dan lain-lain, membolehkan pembangun menyesuaikan diri dengan pelbagai senario. Contoh berikut menunjukkan cara memuatkan fon daripada mana-mana format yang disokong seperti TTF dan menukarnya kepada WOFF2 menggunakan perintah C++.

Tukar TTF ke WOFF2 menggunakan API C++

using namespace System;
    using namespace Aspose::Font::Sources;
    using namespace Aspose::Font::Ttf;
    using namespace Aspose::Font;

    // Open TTF font
    SharedPtr fontFileDefinition = MakeObject(MakeObject(u"Montserrat-Regular.ttf"));
    SharedPtr fontDefinition = MakeObject(FontType::TTF, fontFileDefinition);
    SharedPtr font = Font::Open(fontDefinition);

    // WOFF2 output settings
    SharedPtr outStream = IO::File::Create(u"Montserrat-Regular.woff2");

    // Convert TTF to WOFF2
    font->SaveToFormat(outStream, FontSavingFormats::WOFF2);

Muat Turun dan Ekstrak Fon Type1 melalui API C++

Aspose.Font untuk C++ membolehkan pembangun perisian memuatkan Type1 serta format fon lain yang disokong daripada pelbagai sumber, seperti fail tempatan, aliran, atau URL. Pembangun perisian boleh memuatkan fon secara individu atau secara pukal, memudahkan pemprosesan pelbagai fon secara serentak. Setelah dimuatkan, pembangun boleh mengemas kini sifat fon dan menyimpannya kembali ke format yang dikehendaki atau mengeksportnya ke format lain dengan mudah. Contoh berikut menunjukkan cara memuatkan dan mengekstrak data daripada fon type1 dalam aplikasi C++.

Bagaimana untuk Memuat Turun dan Mengekstrak Data daripada Fon Type1 menggunakan API C++?

System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
    
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(Aspose::Font::Font::Open(fd));

Sokongan Metrik Fon dan Glif

Aspose.Font untuk C++ adalah perpustakaan yang sangat kaya dengan ciri yang menyediakan akses kepada pelbagai metrik fon, termasuk naik, turun, jurang baris, dan pelbagai ukuran penting lain. Pembangun perisian boleh mendapatkan maklumat glif seperti nilai Unicode, kotak sempadan, lebar maju, dan banyak lagi. Ciri-ciri ini membolehkan pengguna menempatkan dan memaparkan teks dengan tepat dalam aplikasi anda. Contoh berikut menunjukkan bagaimana pembangun perisian dapat memaparkan teks dengan glif menggunakan arahan C++.

Bagaimana untuk Memaparkan Teks dengan Glyphs dalam Aplikasi C++?

 using Aspose::Font::Glyphs;
using Aspose::Font::Rendering;
using Aspose::Font::RenderingPath;

class GlyphOutlinePainter: IGlyphOutlinePainter
    RenderingText::GlyphOutlinePainter::GlyphOutlinePainter(System::SharedPtr path)
    {
        _path = path;
    }
    void RenderingText::GlyphOutlinePainter::MoveTo(System::SharedPtr moveTo)
    {
        _path->CloseFigure();
        _currentPoint.set_X((float)moveTo->get_X());
        _currentPoint.set_Y((float)moveTo->get_Y());
    }

    void RenderingText::GlyphOutlinePainter::LineTo(System::SharedPtr lineTo)
    {
        float x = (float)lineTo->get_X();
        float y = (float)lineTo->get_Y();
        _path->AddLine(_currentPoint.get_X(), _currentPoint.get_Y(), x, y);
        _currentPoint.set_X(x);
        _currentPoint.set_Y(y);
    }

    void RenderingText::GlyphOutlinePainter::CurveTo(System::SharedPtr curveTo)
    {
        float x3 = (float)curveTo->get_X3();
        float y3 = (float)curveTo->get_Y3();
    
        _path->AddBezier(_currentPoint.get_X(), _currentPoint.get_Y(), (float)curveTo->get_X1(), (float)curveTo->get_Y1(), (float)curveTo->get_X2(), (float)curveTo->get_Y2(), x3, y3);
    
        _currentPoint.set_X(x3);
        _currentPoint.set_Y(y3);
    }

    void RenderingText::GlyphOutlinePainter::ClosePath()
    {
        _path->CloseFigure();
    }

    System::Object::shared_members_type Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::GetSharedMembers()
    {
        auto result = System::Object::GetSharedMembers();
    
        result.Add("Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::_path", this->_path);      result.Add("Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::_currentPoint", this->_currentPoint);
    
        return result;
    }

Sokongan Manipulasi & Penyuntingan Fon melalui API C++

Aspose.Font untuk C++ membolehkan pemaju perisian memuatkan Type1 serta format fon lain yang disokong daripada pelbagai sumber, seperti fail tempatan, aliran, atau URL. Pemaju perisian boleh memuatkan fon secara individu atau secara pukal, memudahkan pemprosesan pelbagai fon secara serentak. Setelah dimuatkan, pemaju boleh mengemas kini sifat fon dan menyimpannya kembali ke format yang dikehendaki atau mengeksportnya ke format lain dengan mudah. Contoh berikut menunjukkan cara memuatkan dan mengekstrak data daripada fon type1 dalam aplikasi C++.

Baca Maklumat Metrik Fon dari Fon Type1 dalam Aplikasi C++

System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
    
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(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);

 Melayu