
Aspose.Font för C++
C++ Teckensnitt API för att läsa, spara och konvertera teckensnitt
C++-biblioteket möjliggör att ladda, läsa, spara och konvertera olika teckensnittformat såsom TrueType, WOFF, EOT, OpenType, CFF och Type1 i C++-baserade applikationer.
Aspose.Font för C++ är ett mycket kraftfullt verktyg som förenklar teckensnittshantering och erbjuder ett omfattande utbud av funktioner för mjukvaruutvecklare och programmerare. Det ger C++-utvecklare möjlighet att arbeta med olika teckensnittformat och utföra ett brett spektrum av teckensnittrelaterade uppgifter. Det gör det möjligt för mjukvaruutvecklare att läsa in, generera, redigera och konvertera teckensnittsfiler i olika format, såsom TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT och många fler. API:et kan lyfta dina teckensnittsuppgifter till nästa nivå utan några externa beroenden.
Aspose.Font för C++ är ett funktionsrikt bibliotek som erbjuder omfattande verktyg för teckensnittshantering för C++-utvecklare. Biblioteket stöder ett brett spektrum av teckensnittsåtgärder, inklusive att extrahera teckensnittmetadata, ladda teckensnittsfiler från disk eller ström, komma åt glyfinformation, konvertera teckensnitt till olika format, läsa teckensnittsinformation, uppdatera teckensnittsfiler och spara dem på disken, läsa metrikinformation från teckensnittsfiler, rendera text med teckensnittsglyfer, slå ihop TrueType-teckensnitt och mycket mer. Det stöder både 32-bitars och 64-bitars operativsystem.
Aspose.Font för C++ erbjuder avancerade typografiska funktioner, inklusive hantering av ligaturer, kontextuella och diskretionära glyfsubstitutioner samt avancerade alternativ för textlayout. Dessa funktioner är särskilt användbara när man arbetar med komplexa skript eller språk som kräver sofistikerad textformning och rendering. API:et är plattformsoberoende och gör det möjligt för användare att använda det sömlöst på olika operativsystem, inklusive Windows, Linux och macOS. Om du vill förbättra teckensnittshanteringsmöjligheterna i dina C++-applikationer är Aspose.Font utan tvekan värt att överväga.
Komma igång med Aspose.Font för C++
Det rekommenderade sättet att installera Aspose.Font för C++ är att använda NuGet. Använd följande kommando för en smidig installation.
Installera Aspose.Font för C++ via NuGet-kommando
NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0Du kan ladda ner biblioteket direkt från Aspose.Font för C++ produktsida
Teckensnittskonvertering till stödda filformat via C++-API
En av de anmärkningsvärda funktionerna i Aspose.Font för C++ är dess förmåga att konvertera teckensnitt mellan olika stödda filformat. Detta blir mycket bekvämt när mjukvaruutvecklare behöver konvertera teckensnitt till ett specifikt format som är kompatibelt med din målmiljö eller plattform. Biblioteket stödjer sömlös konvertering mellan TrueType, OpenType, CFF, PostScript Type 1-teckensnitt, och mer, vilket gör att utvecklare kan hantera ett brett spektrum av scenarier. Följande exempel visar hur man laddar ett teckensnitt från något av de stödda formaten, som TTF, och konverterar det till WOFF2 med C++-kommandon.
Konvertera TTF till WOFF2 med 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);
Ladda och extrahera Type1-teckensnitt via C++-API
Aspose.Font för C++ låter mjukvaruutvecklare att läsa in Type1 samt andra stödda teckensnittformat från olika källor, såsom lokala filer, strömmar eller URL:er. Mjukvaruutvecklare kan läsa in teckensnitt individuellt eller i bulk, vilket gör det enkelt att bearbeta flera teckensnitt samtidigt. När de är inlästa kan utvecklare uppdatera teckensnittens egenskaper och spara dem tillbaka till önskat format eller exportera dem till andra format med lätthet. Följande exempel visar hur man läser in och extraherar data från type1-teckensnitt i C++-applikationer.
Hur man laddar och extraherar data från Type1-teckensnitt med 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));
Stöd för teckensnittsmått och glyfer
Aspose.Font för C++ är ett mycket funktionsrikt bibliotek som ger åtkomst till en mängd teckensnittsmått, inklusive höjd, djup, radavstånd och olika andra viktiga mätningar. Mjukvaruutvecklare kan hämta glyfinformation såsom Unicode‑värden, begränsningsrutor, framstegsbredder och mer. Dessa funktioner gör det möjligt för användare att exakt placera och rendera text i dina applikationer. Följande exempel visar hur mjukvaruutvecklare kan rendera text med glyferna med hjälp av C++-kommandon.
Hur renderar man text med glyfer i C++-applikationer?
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;
}
Manipulering och redigering av teckensnitt via C++-API
Aspose.Font för C++ låter mjukvaruutvecklare ladda Type1 samt andra stödda teckensnittformat från olika källor, såsom lokala filer, strömmar eller URL:er. Mjukvaruutvecklare kan ladda teckensnitt individuellt eller i bulk, vilket gör det enkelt att bearbeta flera teckensnitt samtidigt. När de är laddade kan utvecklare uppdatera teckensnittens egenskaper och spara dem tillbaka till önskat format eller exportera dem till andra format med lätthet. Följande exempel visar hur man laddar och extraherar data från Type1-teckensnitt i C++-applikationer.
Läs teckensnittsmåttinformation från Type1-teckensnitt i C++-appar
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);
