
Aspose.Font untuk C++
API Font C++ untuk Membaca, Menyimpan & Mengonversi Font
Perpustakaan C++ memungkinkan Memuat, Membaca, Menyimpan, dan Mengonversi berbagai format font seperti TrueType, WOFF, EOT, OpenType, CFF, dan Type1 dalam aplikasi berbasis C++.
Aspose.Font for C++ adalah alat yang sangat kuat yang menyederhanakan penanganan font dan menawarkan serangkaian fitur yang luas untuk pengembang perangkat lunak dan programmer. Ini memberdayakan pengembang C++ untuk bekerja dengan berbagai format font dan melakukan berbagai tugas terkait font. Ini memungkinkan pengembang perangkat lunak untuk memuat, menghasilkan, mengedit, dan mengonversi file font dalam berbagai format, seperti TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT, dan banyak lainnya. API dapat meningkatkan tugas terkait font Anda ke tingkat berikutnya tanpa ketergantungan eksternal.
Aspose.Font untuk C++ adalah perpustakaan kaya fitur yang menyediakan kemampuan manipulasi font yang komprehensif bagi pengembang C++. Perpustakaan ini mendukung berbagai operasi font, termasuk mengekstrak metadata font, memuat file font dari disk atau aliran, mengakses informasi glif, mengonversi font ke format berbeda, membaca informasi font, memperbarui file font & menyimpannya ke disk, membaca informasi metrik dari file Font, merender teks menggunakan glif font, menggabungkan font TrueType, dan banyak lagi. Ia mendukung sistem operasi 32-bit maupun 64-bit.
Aspose.Font untuk C++ menawarkan kemampuan tipografi lanjutan, termasuk penanganan ligatur, substitusi glif kontekstual dan diskresi, serta opsi tata letak teks yang canggih. Fitur-fitur ini sangat berguna saat bekerja dengan skrip kompleks atau bahasa yang memerlukan pembentukan dan perenderan teks yang rumit. API ini lintas platform dan memungkinkan pengguna menggunakannya secara mulus pada berbagai sistem operasi, termasuk Windows, Linux, dan macOS. Jika Anda ingin meningkatkan kemampuan manipulasi font dalam aplikasi C++ Anda, Aspose.Font jelas patut dipertimbangkan.
Memulai dengan Aspose.Font untuk C++
Cara yang disarankan untuk menginstal Aspose.Font untuk C++ adalah menggunakan NuGet. Silakan gunakan perintah berikut untuk instalasi yang lancar.
Instal Aspose.Font untuk C++ melalui Perintah NuGet
NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0Anda dapat mengunduh perpustakaan langsung dari Aspose.Font untuk C++ halaman produk
Konversi Font ke Format File yang Didukung melalui API C++
Salah satu fitur menonjol dari Aspose.Font untuk C++ adalah kemampuannya mengonversi font antara berbagai format file yang didukung. Hal ini menjadi sangat nyaman ketika pengembang perangkat lunak perlu mengonversi font ke format tertentu yang kompatibel dengan lingkungan atau platform target Anda. Perpustakaan ini mendukung konversi mulus antara font TrueType, OpenType, CFF, PostScript Type 1, dan lainnya, memungkinkan pengembang menangani berbagai skenario. Contoh berikut menunjukkan cara memuat font dari salah satu format yang didukung seperti TTF dan mengonversinya ke WOFF2 menggunakan perintah C++.
Konversi TTF ke WOFF2 menggunakan API C++
using namespace System;
using namespace Aspose::Font::Sources;
using namespace Aspose::Font::Ttf;
using namespace Aspose::Font;
// Open TTF font
SharedPtr fontFileDefinition = MakeObject(MakeObject(u"Montserrat-Regular.ttf"));
SharedPtr fontDefinition = MakeObject(FontType::TTF, fontFileDefinition);
SharedPtr font = Font::Open(fontDefinition);
// WOFF2 output settings
SharedPtr outStream = IO::File::Create(u"Montserrat-Regular.woff2");
// Convert TTF to WOFF2
font->SaveToFormat(outStream, FontSavingFormats::WOFF2);
Muat dan Ekstrak Font Type1 melalui API C++
Aspose.Font untuk C++ memungkinkan pengembang perangkat lunak memuat Type1 serta format font lain yang didukung dari berbagai sumber, seperti file lokal, aliran, atau URL. Pengembang perangkat lunak dapat memuat font secara individual atau secara massal, memudahkan pemrosesan banyak font secara bersamaan. Setelah dimuat, pengembang dapat memperbarui properti font dan menyimpannya kembali ke format yang diinginkan atau mengekspornya ke format lain dengan mudah. Contoh berikut menunjukkan cara memuat dan mengekstrak data dari font type1 dalam aplikasi C++.
Cara Memuat dan Mengekstrak Data dari Font Type1 menggunakan API C++?
System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(Aspose::Font::Font::Open(fd));
Dukungan Metri Font dan Glif
Aspose.Font untuk C++ adalah perpustakaan yang sangat kaya fitur yang menyediakan akses ke berbagai metrik font, termasuk ascent, descent, line gap, dan berbagai pengukuran penting lainnya. Pengembang perangkat lunak dapat mengambil informasi glif seperti nilai Unicode, kotak pembatas, lebar maju, dan lainnya. Fitur-fitur ini memungkinkan pengguna menempatkan dan merender teks secara akurat dalam aplikasi Anda. Contoh berikut menunjukkan cara pengembang perangkat lunak dapat merender teks dengan glif menggunakan perintah C++.
Bagaimana Menampilkan Teks dengan Glif dalam Aplikasi C++?
using Aspose::Font::Glyphs;
using Aspose::Font::Rendering;
using Aspose::Font::RenderingPath;
class GlyphOutlinePainter: IGlyphOutlinePainter
RenderingText::GlyphOutlinePainter::GlyphOutlinePainter(System::SharedPtr path)
{
_path = path;
}
void RenderingText::GlyphOutlinePainter::MoveTo(System::SharedPtr moveTo)
{
_path->CloseFigure();
_currentPoint.set_X((float)moveTo->get_X());
_currentPoint.set_Y((float)moveTo->get_Y());
}
void RenderingText::GlyphOutlinePainter::LineTo(System::SharedPtr 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 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;
}
Manipulasi & Penyuntingan Font melalui API C++
Aspose.Font untuk C++ memungkinkan pengembang perangkat lunak memuat Type1 serta format font lain yang didukung dari berbagai sumber, seperti file lokal, aliran, atau URL. Pengembang dapat memuat font secara individual atau secara massal, memudahkan pemrosesan banyak font secara bersamaan. Setelah dimuat, pengembang dapat memperbarui properti font dan menyimpannya kembali ke format yang diinginkan atau mengekspornya ke format lain dengan mudah. Contoh berikut menunjukkan cara memuat dan mengekstrak data dari font type1 dalam aplikasi C++.
Baca informasi metrik font dari Font Type1 di dalam aplikasi C++
System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(Aspose::Font::Font::Open(fd));
System::String name = font->get_FontName();
System::Console::WriteLine(System::String(u"Font name: ") + name);
System::Console::WriteLine(System::String(u"Glyph count: ") + font->get_NumGlyphs());
System::String metrics = System::String::Format(u"Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}", font->get_Metrics()->get_Ascender(), font->get_Metrics()->get_Descender(), font->get_Metrics()->get_TypoAscender(), font->get_Metrics()->get_TypoDescender(), font->get_Metrics()->get_UnitsPerEM());
System::Console::WriteLine(metrics);
