Szöveg renderelése glifekkel

C++ API megoldás a kívánt betűtípusú szöveg megjelenítéséhez.

 

Az Aspose.Font API megoldás gazdag funkciókat kínál betűtípusokkal való munkához, beleértve a konvertálást, a glifyek manipulálását, a latin szimbólumok felismerését, és még sok más. Néhány funkció a glifyek manipulálásával kapcsolatos, mint például a szöveg renderelése.

A glif egy betűtípus karakterének egyedi megjelenése vagy egy szimbólum vagy karakter grafikus ábrázolása. Ennek a betűtípus egységnek a mélyebb megértéséhez olvassa el a Bevezetés a glifbe cikket.

Ez az oldal elmagyarázza, hogyan jeleníthető meg a szöveg glifek segítségével, de a funkcionalitás átfogó magyarázata a Glify objektumok használata cikkben található. Ott több C++ kódrészletet talál, és megismerheti az Aspose.Font képességeit a glifyekkel és a Glyph objektumokkal való munkához. A teljes példákat és adatfájlokat megtalálja az Aspose Github projekt alatt.

A glifyekkel történő szövegíráshoz szükségünk van:

  • Az Aspose.Font for C++ API, amely egy funkciógazdag, erőteljes és könnyen használható dokumentumkezelő és konvertáló API.

  • Nyissa meg a NuGet csomagkezelőt, keresse meg az Aspose.Font csomagot és telepítse. Használhatja a következő parancsot a Package Manager Console-ból is.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Szöveg renderelése glifekkel C++-ban

A szöveg glifekkel való rendereléséhez általában a következő lépések szükségesek:

  1. Töltse be a betűtípusfájlt a memóriába. Itt létre kell hozni egy betűtípus objektumot, például egy Type1Font objektumot, és meg kell adni a betűtípusfájl elérési útját.
  2. Dekódolja a szöveget a megfelelő glifazonosítókra. Ehhez adja át a szöveg minden karakterét a betűtípus kódoló objektumának, és dekódolja a megfelelő glifazonosítóra.
  3. Szerezze meg az egyes glifyek körvonalát. A körvonal egy út, amely meghatározza a karakter alakját. Ezt a GetGlyphOutline() metódussal érheti el a Font objektumnál.
  4. Rajzolja meg az egyes glifyek körvonalait egy grafikai objektum segítségével, például egy GraphicsPath objektummal. Hozzon létre egy olyan objektumot, amely megvalósítja az IGlyphOutlinePainter interfészt, amely a glifyek körvonalainak rajzolásáért felel.
  5. Jelenítse meg a szöveget egy grafikai objektum segítségével, amely a glifyek körvonalait rajzolja. Ezt megteheti a grafikai objektum DrawPath() metódusával.

C++ kód a szöveg rendereléséhez

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



GYIK

1. Hogyan jelenik meg a betűtípus az Aspose.Font segítségével?

A betűtípusok megjelenítéséhez ezzel az API-megoldással az Aspose.Font.Rendering és a entitásokra lesz szüksége Aspose.Font.Renderers névterek. Először hajtsa végre az IGlyphOutlinePainter metódusokat, majd hozza létre a DrawText() metódust. Hozzon létre egy segédprogramot a betűszélesség kiszámításához, és hívja meg a renderelő szöveg funkciót.

2. Milyen tényezőkre kell figyelni, amikor karakterjelekkel jelenít meg szöveget?

Szöveg karakterjelekkel történő megjelenítésekor számos fontos tényezőt figyelembe kell venni a pontos és tetszetős eredmények érdekében, mint például a betűtípus kiválasztása, utalás, levágás és követés, karakterjel-metrikák, szín és kontraszt stb.

3. Mi az a betűtípus utalás?

A tippelés segíthet megőrizni a szöveg tisztaságát és olvashatóságát, különösen kisebb méreteknél vagy kis felbontású képernyőkön.