Renderizza il testo usando i glifi

Soluzione API C++. per visualizzare il testo con il carattere desiderato.

 

La soluzione API Aspose.Font offre ricche funzionalità per lavorare con i caratteri, tra cui conversione, manipolazione di glifi, rilevamento di simboli latini e altro ancora. Alcune delle funzionalità sono correlate alla manipolazione dei glifi, come il rendering del testo.

Un glifo è un disegno unico di un carattere in un carattere tipografico o una rappresentazione grafica di un simbolo o di un carattere. Per comprendere meglio questa unità di carattere, leggi l’articolo Introduzione a Glyph .

Questa pagina spiega come visualizzare il testo utilizzando i glifi, ma una spiegazione completa della funzionalità è fornita nell’articolo Utilizzo degli oggetti Glyph . Lì troverai altri esempi di codice C++ e imparerai le capacità di Aspose.Font per lavorare specificamente con i glifi e gli oggetti Glyph. Puoi anche imparare esempi completi e file di dati su Aspose Github Project .

Per digitare testi con glifi abbiamo bisogno di:

  • Aspose.Font per l'API C++ che è un'API per la manipolazione e la conversione dei documenti ricca di funzionalità, potente e facile da usare.

  • Apri il gestore pacchetti NuGet e cerca Aspose.Font e installa. È inoltre possibile utilizzare il seguente comando dalla console di Package Manager.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Rendering di testo con glifi utilizzando C++

I passaggi successivi sono solitamente richiesti per rendere il testo con i glifi:

  1. Carica il file del font in memoria. Qui devi creare un oggetto font, come un oggetto Type1Font, e passarlo nel percorso del file font.
  2. Decodifica il testo nei relativi ID glifi corrispondenti. Per questo, passa ogni carattere del testo attraverso l’oggetto di codifica del carattere e decodificalo nel suo ID glifo corrispondente.
  3. Ottieni il contorno di ogni glifo. Il contorno è un percorso che definisce la forma del personaggio. Ciò può essere ottenuto utilizzando il metodo GetGlyphOutline() dell’oggetto Font .
  4. Disegna i contorni di ogni glifo utilizzando un oggetto grafico, ad esempio un oggetto GraphicsPath. Basta creare un oggetto che implementi l’interfaccia IGlyphOutlinePainter, che è responsabile del disegno dei contorni dei glifi.
  5. Visualizzare il testo utilizzando un oggetto grafico per disegnare i contorni di ciascun glifo. Questo può essere fatto utilizzando il metodo DrawPath() dell’oggetto grafico.

Codice C++ per il rendering del testo

    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. Come viene visualizzato il carattere tramite Aspose.Font?

Per eseguire il rendering dei caratteri utilizzando questa soluzione API, saranno necessarie le entità di Aspose.Font.Rendering e Aspose.Font.Renderers Spazi dei nomi. Innanzitutto, implementa i metodi IGlyphOutlinePainter. Quindi crea il metodo DrawText(). Creare il metodo di utilità per calcolare la larghezza del carattere e richiamare la funzionalità di rendering del testo.

2. A quali fattori dovresti prestare attenzione durante il rendering del testo con glifi?

Quando si esegue il rendering del testo con glifi, ci sono diversi fattori importanti da considerare per garantire risultati accurati e visivamente accattivanti come la selezione dei caratteri, i suggerimenti, la crenatura e il tracciamento, la metrica dei glifi, il colore e il contrasto, ecc.

3. Che cos’è il suggerimento sui caratteri?

I suggerimenti possono aiutare a mantenere la chiarezza e la leggibilità del testo, in particolare nelle dimensioni più piccole o sugli schermi a bassa risoluzione.