Render teks menggunakan mesin terbang

Solusi API C++. untuk menampilkan teks dengan font yang diinginkan.

 

Aspose.Font API Solution menawarkan kemampuan yang kaya untuk bekerja dengan font, termasuk konversi, manipulasi mesin terbang, deteksi simbol Latin, dan banyak lagi. Beberapa fitur terkait dengan manipulasi mesin terbang, seperti rendering teks.

Mesin terbang adalah desain unik dari karakter dalam jenis huruf atau representasi grafis dari simbol atau karakter. Untuk mendapatkan pemahaman yang lebih mendalam tentang unit font ini, baca artikel Pengantar Glyph .

Halaman ini menjelaskan cara menampilkan teks menggunakan mesin terbang, tetapi penjelasan lengkap tentang fungsi tersebut diberikan dalam artikel Menggunakan objek Glyph . Di sana, Anda akan menemukan lebih banyak contoh kode C++ dan mempelajari tentang kemampuan Aspose.Font untuk bekerja dengan glyph dan objek Glyph secara khusus. Anda juga dapat mempelajari contoh lengkap dan file data di Aspose Proyek Github .

Untuk mengetik teks dengan mesin terbang kita perlu:

  • 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

Render teks dengan mesin terbang menggunakan C++

Langkah selanjutnya biasanya diperlukan untuk merender teks dengan mesin terbang:

  1. Muat file font ke dalam memori. Di sini Anda perlu membuat objek font, seperti objek Type1Font, dan menyebarkannya di jalur file font.
  2. Dekode teks menjadi ID mesin terbang yang sesuai. Untuk ini, teruskan setiap karakter teks melalui objek penyandian font dan dekodekan ke ID mesin terbang yang sesuai.
  3. Dapatkan garis besar setiap mesin terbang. Garis besar adalah jalur yang mendefinisikan bentuk karakter. Ini dapat dicapai dengan menggunakan Metode GetGlyphOutline() dari objek Font .
  4. Gambarkan garis tepi setiap mesin terbang menggunakan objek grafik, seperti objek GraphicsPath. Cukup buat objek yang mengimplementasikan antarmuka IGlyphOutlinePainter, yang bertanggung jawab untuk menggambar garis besar mesin terbang.
  5. Tampilkan teks dengan menggunakan objek grafik untuk menggambar garis besar setiap mesin terbang. Ini dapat dilakukan dengan menggunakan Metode DrawPath() dari objek grafik.

Kode C++ untuk merender teks

    using Aspose::Font::Glyphs;
    using Aspose::Font::Rendering;
    using Aspose::Font::RenderingPath;
    class GlyphOutlinePainter: IGlyphOutlinePainter
    RenderingText::GlyphOutlinePainter::GlyphOutlinePainter(System::SharedPtr<System::Drawing::Drawing2D::GraphicsPath> path)
    {
        _path = path;
    }

    void RenderingText::GlyphOutlinePainter::MoveTo(System::SharedPtr<Aspose::Font::RenderingPath::MoveTo> moveTo)
    {
        _path->CloseFigure();
        _currentPoint.set_X((float)moveTo->get_X());
        _currentPoint.set_Y((float)moveTo->get_Y());
    }

    void RenderingText::GlyphOutlinePainter::LineTo(System::SharedPtr<Aspose::Font::RenderingPath::LineTo> 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<Aspose::Font::RenderingPath::CurveTo> 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;
    }



FAQ

1. Bagaimana font dirender melalui Aspose.Font?

Untuk merender font menggunakan solusi API ini, Anda memerlukan entitas Aspose.Font.Rendering dan Aspose.Font.Renderers . Pertama, implementasikan metode IGlyphOutlinePainter. Lalu buat Metode DrawText(). Buat metode utilitas untuk menghitung lebar font dan memanggil fungsi rendering teks.

2. Faktor apa yang harus Anda perhatikan saat merender teks dengan mesin terbang?

Saat merender teks dengan mesin terbang, ada beberapa faktor penting yang perlu dipertimbangkan untuk memastikan hasil yang akurat dan menarik secara visual seperti pemilihan font, petunjuk, kerning dan pelacakan, metrik mesin terbang, warna dan kontras, dll.

3. Apa yang dimaksud dengan petunjuk font?

Petunjuk dapat membantu menjaga kejelasan dan keterbacaan teks, terutama pada ukuran lebih kecil atau pada layar beresolusi rendah.