Render teks menggunakan glif
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 glif, deteksi simbol Latin, dan lainnya. Beberapa fitur terkait dengan manipulasi glif, seperti perenderan teks.
Sebuah glif adalah desain unik dari sebuah karakter dalam tipe huruf atau representasi grafis dari sebuah simbol atau karakter. Untuk memahami lebih dalam unit font ini, bacalah artikel Pengenalan ke Glif .
Halaman ini menjelaskan cara menampilkan teks menggunakan glif, tetapi penjelasan komprehensif tentang fungsionalitas disediakan dalam artikel Menggunakan objek Glif . Di sana, Anda akan menemukan lebih banyak contoh kode C++ dan mempelajari kemampuan Aspose.Font untuk bekerja dengan glif dan objek Glif secara khusus. Anda juga dapat mempelajari contoh lengkap dan file data di Aspose Proyek Github .
Untuk mengetik teks dengan glif, kita membutuhkan:
Aspose.Font untuk API C++ yang kaya fitur, kuat, dan mudah digunakan untuk manipulasi dan konversi dokumen.
Buka pengelola paket NuGet, cari Aspose.Font dan instal. Anda juga dapat menggunakan perintah berikut dari Konsol Pengelola Paket.
Package Manager Console Command
PM> Install-Package Aspose.Font
Render teks dengan glif menggunakan C++
Langkah-langkah berikut biasanya diperlukan untuk merender teks dengan glif:
- Muat file font ke memori. Di sini Anda perlu membuat objek font, seperti objek Type1Font, dan beri path file fontnya.
- Dekode teks menjadi ID glif yang sesuai. Untuk ini, lewati setiap karakter teks melalui objek encoding font dan dekode menjadi ID glif yang bersesuaian.
- Dapatkan outline setiap glif. Outline adalah jalur yang menentukan bentuk karakter. Ini dapat dicapai menggunakan Metode GetGlyphOutline() dari objek Font .
- Gambar outline setiap glif menggunakan objek grafis, seperti objek GraphicsPath. Cukup buat objek yang mengimplementasikan antarmuka IGlyphOutlinePainter, yang bertanggung jawab menggambar outline glif.
- Tampilkan teks dengan menggunakan objek grafis untuk menggambar outline setiap glif. Ini dapat dilakukan menggunakan Metode DrawPath() dari objek grafis.
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.