
Aspose.Font for C++
C++ Şrift API-si Şriftləri Oxumaq, Saxlamaq və Çevirmək üçün
C++ Kitabxanası C++-də əsaslanan tətbiqlərdə TrueType, WOFF, EOT, OpenType, CFF və Type1 kimi müxtəlif şrift formatlarını yükləmək, oxumaq, saxlamaq və çevirmək imkanı verir.
Aspose.Font for C++ çox güclü bir vasitədir, şrift idarəçiliyini sadələşdirir və proqram inkişaf etdiriciləri və proqramçılar üçün geniş xüsusiyyətlər təklif edir. Bu, C++ inkişaf etdiricilərinə müxtəlif şrift formatları ilə işləmək və şriftlə bağlı geniş tapşırıqları yerinə yetirmək imkanı verir. Proqram inkişaf etdiriciləri şrift fayllarını müxtəlif formatlarda, məsələn TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT və digərləri kimi yükləyə, yarada, redaktə edə və çevirə bilərlər. API, şriftlə bağlı tapşırıqlarınızı heç bir xarici asılılıq olmadan növbəti səviyyəyə qaldıra bilər.
Aspose.Font for C++ zəngin xüsusiyyətlərə malik bir kitabxanadır və C++ inkişaf etdiriciləri üçün geniş şrift manipulyasiyası imkanları təqdim edir. Kitabxana şrift əməliyyatlarının geniş çeşidini dəstəkləyir, o cümlədən şrift metadata-sını çıxarmaq, şrift fayllarını diskdən və ya axından yükləmək, qlyf məlumatına daxil olmaq, şriftləri müxtəlif formatlara çevirmək, şrift məlumatını oxumaq, şrift fayllarını yeniləmək və diska saxlamaq, şrift fayllarından ölçü məlumatlarını oxumaq, şrift qlyflərindən istifadə edərək mətn renderləmək, TrueType şriftlərini birləşdirmək və daha çox. O, 32-bit və 64-bit əməliyyat sistemlərini dəstəkləyir.
Aspose.Font for C++ inkişaf etmiş tipografik imkanlar təklif edir, o cümlədən ligaturaların, kontekstual və sərbəst qlyf əvəzləmələrinin idarə edilməsi və inkişaf etmiş mətn yerləşdirmə seçimləri. Bu xüsusiyyətlər xüsusilə mürəkkəb skriptlərlə və ya mürəkkəb mətn formalaşdırma və renderləmə tələb edən dillərlə işləyərkən faydalıdır. API platformalararasıdır və istifadəçilərə Windows, Linux və macOS daxil olmaqla müxtəlif əməliyyat sistemlərində problemsiz istifadə etməyə imkan verir. Əgər C++ tətbiqlərinizdə şrift manipulyasiyası imkanlarını artırmaq istəyirsinizsə, Aspose.Font şübhəsiz ki, nəzərə alınmağa dəyər.
Aspose.Font for C++ ilə Başlanğıc
Aspose.Font for C++-i quraşdırmağın tövsiyə olunan yolu NuGet-dən istifadə etməkdir. Zəhmət olmasa, problemsiz quraşdırma üçün aşağıdakı əmri istifadə edin.
NuGet Əmrilə Aspose.Font for C++ quraşdırın
NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0Kitabxananı birbaşa Aspose.Font for C++ məhsul səhifəsindən yükləyə bilərsiniz
C++ API vasitəsilə Dəstəklənən Fayl Formatlarına Şrift Çevrilməsi
Aspose.Font for C++-in diqqətəlayiq xüsusiyyətlərindən biri, şriftləri müxtəlif dəstəklənən fayl formatları arasında çevirmə qabiliyyətidir. Bu, proqram inkişaf etdiriciləri şriftləri hədəf mühitinizə və ya platformanıza uyğun xüsusi formata çevirməli olduqda çox rahat olur. Kitabxana TrueType, OpenType, CFF, PostScript Type 1 şriftləri və daha çoxu arasında problemsiz çevirməni dəstəkləyir, bu da inkişaf etdiricilərə geniş ssenarilərə uyğunlaşmağa imkan verir. Aşağıdakı nümunə, TTF kimi dəstəklənən formatlardan şrift yükləmək və C++ əmrləri ilə onu WOFF2-ə çevirmək yollarını göstərir.
C++ API istifadə edərək TTF-ni WOFF2-ə çevirin
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);
C++ API vasitəsilə Type1 Şriftləri Yükləmək və Çıxarmaq
Aspose.Font for C++ proqram təminatı inkişaf etdiricilərinə Type1 və digər dəstəklənən şrift formatlarını müxtəlif mənbələrdən, məsələn, yerli fayllardan, axınlardan və ya URL-lərdən yükləməyə imkan verir. Proqram təminatı inkişaf etdiriciləri şriftləri fərdi və ya toplu şəkildə yükləyə bilərlər, bu da bir neçə şrifti eyni anda işləmək üçün asanlıq yaradır. Yükləndikdən sonra, inkişaf etdiricilər şriftlərin xüsusiyyətlərini yeniləyə və onları istənilən formata geri saxlayaraq və ya digər formatlara asanlıqla ixrac edə bilərlər. Aşağıdakı nümunə C++ tətbiqlərində type1 şriftlərini yükləmək və məlumatları çıxarmaq üçün necə istifadə olunacağını göstərir.
C++ API istifadə edərək Type1 Şriftlərindən Məlumatı Necə Yükləmək və Çıxarmaq?
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));
Şrift Ölçüləri və Qlif Dəstəyi
Aspose.Font for C++ çox funksiyalı bir kitabxanadır və yüksəliş, eniş, sətir boşluğu və digər vacib ölçülər daxil olmaqla şrift ölçülərinə geniş giriş imkanı verir. Proqram təminatı inkişaf etdiriciləri Unicode dəyərləri, sərhəd qutuları, irəliləyiş enlikləri və s. kimi qlyf məlumatlarını əldə edə bilərlər. Bu xüsusiyyətlər istifadəçilərə tətbiqlərinizdə mətnin dəqiq yerləşdirilməsini və render edilməsini təmin edir. Aşağıdakı nümunə proqram təminatı inkişaf etdiricilərinin C++ əmrləri ilə qlyflərlə mətn render etməsini göstərir.
C++ Tətbiqlərində Qliflərlə Mətn Necə Göstərilir?
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;
}
C++ API vasitəsilə Şrift Manipulyasiyası və Redaktəsi
Aspose.Font for C++ proqram təminatı inkişaf etdiricilərinə Type1 və digər dəstəklənən şrift formatlarını müxtəlif mənbələrdən, məsələn, yerli fayllardan, axınlardan və ya URL-lərdən yükləməyə imkan verir. Proqram təminatı inkişaf etdiriciləri şriftləri fərdi və ya toplu şəkildə yükləyə bilər, bu da bir neçə şrifti eyni anda işləmək üçün asanlıq yaradır. Yükləndikdən sonra, inkişaf etdiricilər şriftlərin xüsusiyyətlərini yeniləyə və onları istənilən formata geri saxlaya və ya digər formatlara asanlıqla ixrac edə bilərlər. Aşağıdakı nümunə C++ tətbiqlərində type1 şriftlərindən məlumat yükləmək və çıxarmaq üsulunu göstərir.
C++ Tətbiqlərində Type1 Şriftlərindən Şrift Ölçüləri Məlumatını Oxuyun
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);
