
Aspose.Font for C++
C++ šriftų API skaitymui, išsaugojimui ir konvertavimui
C++ biblioteka leidžia įkelti, skaityti, išsaugoti ir konvertuoti įvairius šriftų formatus, tokius kaip TrueType, WOFF, EOT, OpenType, CFF ir Type1, C++ programose.
Aspose.Font for C++ yra labai galinga priemonė, kuri supaprastina šriftų tvarkymą ir siūlo platų funkcijų rinkinį programinės įrangos kūrėjams ir programuotojams. Ji suteikia C++ kūrėjams galimybę dirbti su įvairiais šriftų formatais ir atlikti daugybę su šriftais susijusių užduočių. Ji leidžia programinės įrangos kūrėjams įkelti, generuoti, redaguoti ir konvertuoti šriftų failus įvairiais formatais, tokiais kaip TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT ir daugelis kitų. API gali pakelti jūsų su šriftais susijusias užduotis į kitą lygį be jokių išorinių priklausomybių.
Aspose.Font for C++ yra funkcijomis turtinga biblioteka, kuri suteikia išsamias šriftų manipuliavimo galimybes C++ kūrėjams. Biblioteka palaiko platų šriftų operacijų spektrą, įskaitant šriftų metaduomenų išgavimą, šriftų failų įkėlimą iš disko arba srauto, glifų informacijos prieigą, šriftų konvertavimą į skirtingus formatus, šriftų informacijos skaitymą, šriftų failų atnaujinimą ir jų įrašymą į diską, metrikų informacijos skaitymą iš šriftų failų, teksto atvaizdavimą naudojant šriftų glifus, TrueType šriftų sujungimą ir daug daugiau. Ji palaiko 32‑bitų ir 64‑bitų operacines sistemas.
Aspose.Font for C++ siūlo pažangias tipografines galimybes, įskaitant ligatūrų tvarkymą, kontekstines ir savanoriškas glifų pakeitimo galimybes bei išplėstines teksto išdėstymo parinktis. Šios funkcijos ypač naudingos dirbant su sudėtingais rašmenimis ar kalbomis, kurioms reikalingas sudėtingas teksto formavimas ir atvaizdavimas. API yra platformų nepriklausoma ir leidžia vartotojams ją sklandžiai naudoti skirtingose operacinėse sistemose, įskaitant Windows, Linux ir macOS. Jei norite pagerinti šriftų manipuliavimo galimybes savo C++ programose, Aspose.Font neabejotinai verta apsvarstyti.
Pradžia dirbant su Aspose.Font C++
Rekomenduojamas būdas įdiegti Aspose.Font for C++ yra naudojant NuGet. Prašome naudoti šią komandą sklandžiam įdiegimui.
Įdiekite Aspose.Font C++ per NuGet komandą
NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0Biblioteką galite atsisiųsti tiesiai iš Aspose.Font for C++ produkto puslapio
Šriftų konvertavimas į palaikomus failų formatus naudojant C++ API
Viena iš svarbiausių Aspose.Font for C++ savybių yra galimybė konvertuoti šriftus tarp skirtingų palaikomų failų formatų. Tai tampa labai patogu, kai programinės įrangos kūrėjams reikia konvertuoti šriftus į konkretų formatą, suderinamą su jūsų tiksline aplinka ar platforma. Biblioteka palaiko sklandų konvertavimą tarp TrueType, OpenType, CFF, PostScript Type 1 šriftų ir kt., leidžiant kūrėjams prisitaikyti prie įvairių scenarijų. Žemiau pateiktas pavyzdys rodo, kaip įkelti šriftą iš bet kurio palaikomo formato, pvz., TTF, ir konvertuoti jį į WOFF2 naudojant C++ komandas.
Konvertuokite TTF į WOFF2 naudojant C++ API
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);
Įkelti ir išgauti Type1 šriftus naudojant C++ API
Aspose.Font for C++ leidžia programinės įrangos kūrėjams įkelti Type1 ir kitus palaikomus šriftų formatus iš įvairių šaltinių, pvz., vietinių failų, srautų ar URL. Programinės įrangos kūrėjai gali įkelti šriftus atskirai arba masiškai, todėl lengva apdoroti kelis šriftus vienu metu. Įkėlę šriftus, kūrėjai gali atnaujinti šriftų savybes ir išsaugoti juos norimu formatu arba lengvai eksportuoti į kitus formatus. Žemiau pateiktas pavyzdys rodo, kaip C++ programose įkelti ir išgauti duomenis iš Type1 šriftų.
Kaip įkelti ir išgauti duomenis iš Type1 šriftų naudojant C++ API?
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ų metrikų ir glifų palaikymas
Aspose.Font for C++ yra labai funkcijomis turtinga biblioteka, suteikianti prieigą prie gausybės šriftų metrikų, įskaitant aukštį, žemyną, eilučių tarpą ir įvairius kitus svarbius matavimus. Programinės įrangos kūrėjai gali gauti glifų informaciją, pvz., Unicode reikšmes, ribinius laukus, žingsnių pločius ir kt. Šios funkcijos leidžia vartotojams tiksliai pozicionuoti ir atvaizduoti tekstą jūsų programose. Žemiau pateiktas pavyzdys rodo, kaip programinės įrangos kūrėjai gali atvaizduoti tekstą su glifais naudojant C++ komandas.
Kaip atvaizduoti tekstą su glifais C++ programose?
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;
}
Šriftų manipuliavimas ir redagavimas naudojant C++ API
Aspose.Font for C++ leidžia programinės įrangos kūrėjams įkelti Type1 ir kitus palaikomus šriftų formatus iš įvairių šaltinių, pvz., vietinių failų, srautų ar URL. Programinės įrangos kūrėjai gali įkelti šriftus atskirai arba masiškai, todėl lengva apdoroti kelis šriftus vienu metu. Įkėlus, kūrėjai gali atnaujinti šriftų savybes ir išsaugoti juos norimu formatu arba lengvai eksportuoti į kitus formatus. Toliau pateiktas pavyzdys rodo, kaip įkelti ir išgauti duomenis iš type1 šriftų C++ programose.
Skaityti šriftų metrikos informaciją iš Type1 šriftų C++ programose
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);
