Renderizza testo usando glifi
Soluzione API C++. per visualizzare il testo con il font desiderato.
Aspose.Font API Solution offre ricche capacità per lavorare con i font, inclusa la conversione, la manipolazione dei glifi, il rilevamento di simboli latini e molto altro. Alcune delle funzionalità sono relative alla manipolazione dei glifi, come il rendering del testo.
Un glifo è un design unico di un carattere in un tipo di carattere o una rappresentazione grafica di un simbolo o carattere. Per comprendere meglio questa unità tipografica, leggi l’articolo Introduzione ai glifi .
Questa pagina spiega come visualizzare il testo usando i glifi, ma una spiegazione completa della funzionalità è fornita nell’articolo Utilizzare gli oggetti Glyph . Lì troverai più esempi di codice C++ e potrai apprendere le capacità di Aspose.Font per lavorare con i glifi e gli oggetti Glyph in particolare. Puoi anche trovare esempi completi e file di dati sul Progetto Github di Aspose.
Per digitare testi con i glifi abbiamo bisogno di:
Aspose.Font per C++ API, una soluzione ricca di funzionalità, potente e facile da usare per la manipolazione e conversione di documenti.
Apri il gestore dei pacchetti NuGet, cerca Aspose.Font e installalo. Puoi anche utilizzare il seguente comando dalla Console del Gestore Pacchetti.
Package Manager Console Command
PM> Install-Package Aspose.Font
Renderizza testo con glifi usando C++
I passaggi successivi sono solitamente richiesti per renderizzare il testo con i glifi:
- Carica il file del font in memoria. Qui devi creare un oggetto font, come un oggetto Type1Font, e fornire il percorso del file del font.
- Decodifica il testo nei relativi ID dei glifi. Per farlo, passa ogni carattere del testo attraverso l’oggetto di codifica del font e decodificalo nel relativo ID del glifo.
- Ottieni il contorno di ogni glifo. Il contorno è un percorso che definisce la forma del carattere. Questo può essere ottenuto usando il metodo GetGlyphOutline() dell’oggetto Font .
- Disegna i contorni di ogni glifo usando un oggetto grafico, come un oggetto GraphicsPath. Basta creare un oggetto che implementa l’interfaccia IGlyphOutlinePainter, responsabile del disegno dei contorni dei glifi.
- Visualizza il testo usando un oggetto grafico per disegnare i contorni di ciascun glifo. Questo può essere fatto usando il metodo DrawPath() dell’oggetto grafico.
Codice C++ per renderizzare il 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.