
Aspose.Font for C++
C++ Skrifttype API til at læse, gemme & konvertere skrifttyper
C++-biblioteket gør det muligt at indlæse, læse, gemme og konvertere forskellige skrifttypeformater såsom TrueType, WOFF, EOT, OpenType, CFF og Type1 i C++-baserede applikationer.
Aspose.Font for C++ er et meget kraftfuldt værktøj, der forenkler håndtering af skrifttyper og tilbyder et omfattende sæt funktioner til softwareudviklere og programmører. Det giver C++-udviklere mulighed for at arbejde med forskellige skrifttypeformater og udføre en bred vifte af skrifttype‑relaterede opgaver. Det gør det muligt for softwareudviklere at indlæse, generere, redigere og konvertere skrifttypefiler i forskellige formater, såsom TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT og mange andre. API'et kan løfte dine skrifttype‑relaterede opgaver til næste niveau uden nogen eksterne afhængigheder.
Aspose.Font for C++ er et funktionsrigt bibliotek, der giver omfattende fontmanipulationsmuligheder for C++-udviklere. Biblioteket understøtter et bredt udvalg af fontoperationer, herunder udtrækning af fontmetadata, indlæsning af fontfiler fra disk eller strøm, adgang til glyph-information, konvertering af fonte til forskellige formater, læsning af fontinformation, opdatering af fontfiler og gemning til disken, læsning af metrikinformation fra fontfiler, rendering af tekst ved hjælp af fontglyphs, sammenlægning af TrueType-fonte og meget mere. Det understøtter både 32-bit og 64-bit operativsystemer.
Aspose.Font for C++ tilbyder avancerede typografiske funktioner, herunder håndtering af ligaturer, kontekstuelle og valgfrie glyph-udskiftninger samt avancerede tekstlayoutmuligheder. Disse funktioner er særligt nyttige, når man arbejder med komplekse skriftsystemer eller sprog, der kræver sofistikeret tekstformning og rendering. API'en er tværplatform og gør det muligt for brugere at anvende den problemfrit på forskellige operativsystemer, herunder Windows, Linux og macOS. Hvis du ønsker at forbedre fontmanipulationsmulighederne i dine C++-applikationer, er Aspose.Font uden tvivl værd at overveje.
Kom i gang med Aspose.Font for C++
Den anbefalede måde at installere Aspose.Font for C++ på er ved at bruge NuGet. Brug venligst følgende kommando for en problemfri installation.
Installer Aspose.Font for C++ via NuGet-kommando
NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0Du kan downloade biblioteket direkte fra Aspose.Font for C++ produktsiden
Fontkonvertering til understøttede filformater via C++ API
En af de bemærkelsesværdige funktioner i Aspose.Font for C++ er dens evne til at konvertere skrifttyper mellem forskellige understøttede filformater. Dette er meget praktisk, når softwareudviklere skal konvertere skrifttyper til et specifikt format, der er kompatibelt med dit målmiljø eller platform. Biblioteket understøtter problemfri konvertering mellem TrueType, OpenType, CFF, PostScript Type 1-skrifttyper og mere, så udviklere kan imødekomme et bredt udvalg af scenarier. Følgende eksempel viser, hvordan man indlæser en skrifttype fra et af de understøttede formater som TTF og konverterer den til WOFF2 ved hjælp af C++-kommandoer.
Konverter TTF til WOFF2 ved hjælp af 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);
Indlæs og udtræk Type1-fonte via C++ API
Aspose.Font for C++ giver softwareudviklere mulighed for at indlæse Type1 såvel som andre understøttede skrifttypeformater fra forskellige kilder, såsom lokale filer, streams eller URL'er. Softwareudviklere kan indlæse skrifttyper individuelt eller i bulk, hvilket gør det nemt at behandle flere skrifttyper samtidigt. Når de er indlæst, kan udviklere opdatere skrifttypens egenskaber og gemme dem tilbage i det ønskede format eller eksportere dem til andre formater med lethed. Følgende eksempel viser, hvordan man indlæser og udtrækker data fra type1-skrifttyper i C++-applikationer.
Hvordan indlæses og udtrækkes data fra Type1-fonte ved brug af 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));
Fontmålinger og glyph-support
Aspose.Font for C++ er et meget funktionsrigt bibliotek, der giver adgang til en række skrifttypemålinger, herunder ascent, descent, line gap og forskellige andre væsentlige målinger. Softwareudviklere kan hente glyfinformation såsom Unicode-værdier, begrænsningsbokse, forløbsbredder og mere. Disse funktioner gør det muligt for brugere at placere og gengive tekst præcist i dine applikationer. Følgende eksempel viser, hvordan softwareudviklere kan gengive tekst med glyffer ved hjælp af C++-kommandoer.
Hvordan gengiver man tekst med glyffer 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;
}
Fontmanipulation & redigering via C++ API
Aspose.Font for C++ giver softwareudviklere mulighed for at indlæse Type1 såvel som andre understøttede skrifttypeformater fra forskellige kilder, såsom lokale filer, streams eller URL'er. Softwareudviklere kan indlæse skrifttyper individuelt eller i bulk, hvilket gør det nemt at behandle flere skrifttyper samtidigt. Når de er indlæst, kan udviklere opdatere skrifttypens egenskaber og gemme dem tilbage i det ønskede format eller eksportere dem til andre formater med lethed. Det følgende eksempel viser, hvordan man indlæser og udtrækker data fra Type1-skrifttyper i C++-applikationer.
Læs skrifttype-metrikoplysninger fra Type1-skrifttyper i C++-apps
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);
