Glifleri kullanarak metni işleyin

C++ API Çözümü. Metni istenen yazı tipiyle görüntülemek için.

 

Aspose.Font API Çözümü, dönüştürme, gliflerin değiştirilmesi, Latin sembollerinin algılanması ve daha fazlası dahil olmak üzere yazı tipleriyle çalışmak için zengin yetenekler sunar. Metin işleme gibi bazı özellikler, glif işlemeyle ilgilidir.

Glif, bir karakterin yazı tipindeki benzersiz bir tasarımı veya bir sembol veya karakterin grafiksel temsilidir. Bu yazı tipi birimini daha iyi anlamak için Glif’e Giriş makalesini okuyun.

Bu sayfada, glifler kullanılarak metnin nasıl görüntüleneceği açıklanmaktadır, ancak Glif nesnelerini kullanma . Orada, daha fazla C++ kod örneği bulacak ve Aspose.Font’un özellikle glifler ve Glif nesneleri ile çalışma yetenekleri hakkında bilgi edineceksiniz. Aspose’da Github Project tam örnekleri ve veri dosyalarını da öğrenebilirsiniz.

Metinleri gliflerle yazmak 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 metni gliflerle işleyin

Metni gliflerle işlemek için genellikle sonraki adımlar gerekir:

  1. Yazı tipi dosyasını belleğe yükleyin. Burada Type1Font nesnesi gibi bir yazı tipi nesnesi oluşturmanız ve bunu yazı tipi dosyası yoluna geçirmeniz gerekir.
  2. Metnin kodunu karşılık gelen glif kimliklerine göre çözün. Bunun için, metnin her karakterini yazı tipinin kodlama nesnesinden geçirin ve karşılık gelen glif kimliğine kodunu çözün.
  3. Her glifin ana hatlarını alın. Anahat, karakterin şeklini tanımlayan bir yoldur. Bu, Font nesnesinin GetGlyphOutline() Yöntemi kullanılarak elde edilebilir.
  4. GraphicsPath nesnesi gibi bir grafik nesnesi kullanarak her glifin ana hatlarını çizin. Gliflerin ana hatlarını çizmekten sorumlu olan IGlyphOutlinePainter arabirimini uygulayan bir nesne oluşturmanız yeterlidir.
  5. Her glifin dış hatlarını çizmek için bir grafik nesnesi kullanarak metni görüntüleyin. Bu, grafik nesnesinin DrawPath() Yöntemi kullanılarak yapılabilir.

Metni işlemek için C++ Kodu

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



SSS

1. Yazı tipi Aspose.Font aracılığıyla nasıl işleniyor?

Bu API çözümünü kullanarak yazı tiplerini oluşturmak için Aspose.Font.Rendering ve Aspose.Font.Renderers ad alanları varlıklarına ihtiyacınız olacak. İlk önce IGlyphOutlinePainter yöntemlerini uygulayın. Ardından DrawText() Yöntemini oluşturun. Yazı tipi genişliğini hesaplamak ve metin oluşturma işlevini çağırmak için yardımcı program yöntemini oluşturun.

2. Gliflerle metin oluştururken hangi faktörlere dikkat etmelisiniz?

Metni gliflerle işlerken, yazı tipi seçimi, ipucu, karakter aralığı ve izleme, glif ölçümleri, renk ve kontrast vb. gibi doğru ve görsel olarak çekici sonuçlar elde etmek için dikkate alınması gereken birkaç önemli faktör vardır.

3. Yazı tipi ipucu nedir?

İpucu vermek, özellikle daha küçük boyutlarda veya düşük çözünürlüklü ekranlarda metnin netliğini ve okunabilirliğini korumaya yardımcı olabilir.