1. Produkter
  2.   Font
  3.   C++
  4.   Aspose.Font for C++

Aspose.Font for C++

 
 

C++ Skrifttype-API for å lese, lagre & konvertere skrifttyper

C++-biblioteket gjør det mulig å laste, lese, lagre og konvertere ulike skrifttypeformater som TrueType, WOFF, EOT, OpenType, CFF og Type1 i C++-baserte applikasjoner.

Aspose.Font for C++ er et svært kraftig verktøy som forenkler håndtering av fonter og tilbyr et omfattende sett med funksjoner for programvareutviklere og programmerere. Det gir C++-utviklere mulighet til å arbeide med ulike fontformater og utføre et bredt spekter av fontrelaterte oppgaver. Det gjør det mulig for programvareutviklere å laste inn, generere, redigere og konvertere fontfiler i ulike formater, som TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT og mange andre. API-et kan løfte dine fontrelaterte oppgaver til neste nivå uten noen eksterne avhengigheter.

Aspose.Font for C++ er et funksjonsrikt bibliotek som gir omfattende fonthåndteringsmuligheter for C++-utviklere. Biblioteket støtter et bredt spekter av fontoperasjoner, inkludert å hente ut fontmetadata, laste fontfiler fra disk eller strøm, få tilgang til glyfinfo, konvertere fonter til ulike formater, lese fontinformasjon, oppdatere fontfiler og lagre dem på disken, lese metrisk informasjon fra fontfiler, gjengi tekst ved hjelp av fontglyfer, slå sammen TrueType-fonter og mye mer. Det støtter både 32‑bit og 64‑bit operativsystemer.

Aspose.Font for C++ tilbyr avanserte typografiske muligheter, inkludert håndtering av ligaturer, kontekstuelle og valgfrie glyfutskiftninger, samt avanserte tekstoppsettalternativer. Disse funksjonene er spesielt nyttige når man arbeider med komplekse skript eller språk som krever sofistikert tekstforming og gjengivelse. API-et er plattformuavhengig og lar brukere bruke det sømløst på ulike operativsystemer, inkludert Windows, Linux og macOS. Hvis du ønsker å forbedre fonthåndteringsmulighetene i C++-applikasjonene dine, er Aspose.Font uten tvil verdt å vurdere.

Previous Next

Kom i gang med Aspose.Font for C++

Den anbefalte måten å installere Aspose.Font for C++ på er å bruke NuGet. Vennligst bruk følgende kommando for en smidig installasjon.

Installer Aspose.Font for C++ via NuGet-kommando

NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0

Du kan laste ned biblioteket direkte fra Aspose.Font for C++ produktside

Fontkonvertering til støttede filformater via C++-API

En av de bemerkelsesverdige funksjonene i Aspose.Font for C++ er evnen til å konvertere fonter mellom ulike støttede filformater. Dette blir svært praktisk når programvareutviklere trenger å konvertere fonter til et spesifikt format som er kompatibelt med ditt målmiljø eller plattform. Biblioteket støtter sømløs konvertering mellom TrueType, OpenType, CFF, PostScript Type 1-fonter og mer, slik at utviklere kan håndtere et bredt spekter av scenarier. Følgende eksempel viser hvordan du laster en font fra et av de støttede formatene som TTF og konverterer den til WOFF2 ved hjelp av C++-kommandoer.

Konverter TTF til WOFF2 ved hjelp av 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);

Last inn og hent ut Type1-fonter via C++-API

Aspose.Font for C++ gjør det mulig for programvareutviklere å laste inn Type1 så vel som andre støttede skrifttypeformater fra ulike kilder, som lokale filer, strømmer eller URL-er. Programvareutviklere kan laste inn skrifter individuelt eller i bulk, noe som gjør det enkelt å behandle flere skrifter samtidig. Når de er lastet inn, kan utviklere oppdatere egenskapene til skriftene og lagre dem tilbake i ønsket format eller eksportere dem til andre formater med letthet. Følgende eksempel viser hvordan du kan laste inn og hente data fra type1-skrifter i C++-applikasjoner.

Hvordan laste inn og hente data fra Type1-fonter ved bruk av 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øtte for fontmetrikk og glyfer

Aspose.Font for C++ er et svært funksjonsrikt bibliotek som gir tilgang til en mengde skrifttypemålinger, inkludert høyde, dybde, linjeavstand og ulike andre viktige målinger. Programvareutviklere kan hente glyph-informasjon som Unicode-verdier, begrensningsbokser, avstandsbredder og mer. Disse funksjonene gjør det mulig for brukere å nøyaktig plassere og gjengi tekst i applikasjonene dine. Følgende eksempel viser hvordan programvareutviklere kan gjengi tekst med glyphene ved hjelp av C++-kommandoer.

Hvordan gjengi tekst med glyfene i C++-applikasjoner?

 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;
    }

Fontmanipulering og redigering via C++-API

Aspose.Font for C++ gjør det mulig for programvareutviklere å laste inn Type1 samt andre støttede fontformater fra ulike kilder, som lokale filer, strømmer eller URL-er. Programvareutviklere kan laste inn fonter individuelt eller i bulk, noe som gjør det enkelt å behandle flere fonter samtidig. Når de er lastet inn, kan utviklere oppdatere egenskapene til fontene og lagre dem tilbake til ønsket format eller eksportere dem til andre formater med letthet. Følgende eksempel viser hvordan man laster inn og henter data fra Type1-fonter i C++-applikasjoner.

Les fontmetrikkinformasjon fra Type1-fonter i C++-apper

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);

 Norsk