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

Aspose.Font for C++

 
 

C++-fontti-API fonttien lukemiseen, tallentamiseen ja muuntamiseen

C++-kirjasto mahdollistaa erilaisten fonttiformaattien, kuten TrueType, WOFF, EOT, OpenType, CFF ja Type1, lataamisen, lukemisen, tallentamisen ja muuntamisen C++-pohjaisissa sovelluksissa.

Aspose.Font for C++ on erittäin tehokas työkalu, joka yksinkertaistaa fonttien käsittelyä ja tarjoaa laajan valikoiman ominaisuuksia ohjelmistokehittäjille ja ohjelmoijille. Se antaa C++-kehittäjille mahdollisuuden työskennellä eri fonttimuotojen kanssa ja suorittaa monenlaisia fontteihin liittyviä tehtäviä. Se mahdollistaa ohjelmistokehittäjien ladata, luoda, muokata ja muuntaa fonttitiedostoja eri formaateissa, kuten TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT ja monia muita. API voi nostaa fontteihin liittyvät tehtäväsi seuraavalle tasolle ilman ulkoisia riippuvuuksia.

Aspose.Font for C++ on ominaisuuksiltaan rikas kirjasto, joka tarjoaa kattavat fonttien käsittelymahdollisuudet C++-kehittäjille. Kirjasto tukee laajaa valikoimaa fonttitoimintoja, mukaan lukien fonttimetatietojen poiminta, fonttitiedostojen lataaminen levyltä tai virrasta, glyyffitietojen käyttö, fonttien muuntaminen eri formaatteihin, fonttitietojen lukeminen, fonttitiedostojen päivittäminen ja tallentaminen levylle, mittatietojen lukeminen fonttitiedostoista, tekstin renderöinti fonttiglyyfejä käyttäen, TrueType-fonttien yhdistäminen ja paljon muuta. Se tukee sekä 32‑bit- että 64‑bit-käyttöjärjestelmiä.

Aspose.Font for C++ tarjoaa kehittyneitä typografisia ominaisuuksia, mukaan lukien ligatuurien, kontekstuaalisten ja vapaaehtoisten glyyffien korvausten käsittelyn sekä kehittyneet tekstin asetteluvaihtoehdot. Nämä ominaisuudet ovat erityisen hyödyllisiä työskenneltäessä monimutkaisten skriptien tai kielten kanssa, jotka vaativat hienostunutta tekstin muotoilua ja renderöintiä. API on monialustainen ja mahdollistaa sen saumattoman käytön eri käyttöjärjestelmissä, kuten Windowsissa, Linuxissa ja macOSissa. Jos haluat parantaa fonttien käsittelymahdollisuuksia C++-sovelluksissasi, Aspose.Font on ehdottomasti harkitsemisen arvoinen.

Previous Next

Aloittaminen Aspose.Font for C++:n kanssa

Suositeltu tapa asentaa Aspose.Font for C++ on käyttää NuGetia. Käytä seuraavaa komentoa sujuvan asennuksen varmistamiseksi.

Asenna Aspose.Font for C++ NuGet-komennolla

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

Voit ladata kirjaston suoraan Aspose.Font for C++ -tuotesivulta

Fonttien muuntaminen tuettuihin tiedostomuotoihin C++-API:n avulla

Yksi merkittävimmistä Aspose.Font for C++ -ominaisuuksista on sen kyky muuntaa fontteja eri tuettujen tiedostomuotojen välillä. Tämä on erittäin kätevää, kun ohjelmistokehittäjien täytyy muuntaa fontteja tiettyyn kohdeympäristöön tai -alustaan sopivaksi formaatiksi. Kirjasto tukee saumatonta muuntamista TrueType-, OpenType-, CFF-, PostScript Type 1 -fonttien sekä muiden välillä, mikä antaa kehittäjille mahdollisuuden käsitellä laajaa skenaariota. Seuraava esimerkki näyttää, miten ladata fontti mistä tahansa tuetusta formaatista, kuten TTF, ja muuntaa se WOFF2-muotoon C++-komentojen avulla.

Muunna TTF WOFF2-muotoon C++-API:n avulla

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

Lataa ja pura Type1-fontteja C++-API:n avulla

Aspose.Font for C++ mahdollistaa ohjelmistokehittäjille Type1- ja muiden tuettujen fonttimuotojen lataamisen eri lähteistä, kuten paikallisista tiedostoista, virroista tai URL-osoitteista. Ohjelmistokehittäjät voivat ladata fontteja yksittäin tai eräajona, mikä tekee useiden fonttien samanaikaisesta käsittelystä helppoa. Kun fontit on ladattu, kehittäjät voivat päivittää fonttien ominaisuuksia ja tallentaa ne takaisin haluttuun formaattiin tai viedä ne helposti muihin formaatteihin. Seuraava esimerkki näyttää, miten ladata ja poimia tietoja type1-fonteista C++-sovelluksissa.

Kuinka ladata ja purkaa tietoja Type1-fontteista C++-API:n avulla?

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

Fonttimetriikat ja glyyffien tuki

Aspose.Font for C++ on erittäin ominaisuuksiltaan rikas kirjasto, joka tarjoaa pääsyn lukuisiin fonttimetriikoihin, kuten nousuun, laskuun, riviväliin ja muihin olennaisiin mittauksiin. Ohjelmistokehittäjät voivat hakea glyph-tietoja, kuten Unicode-arvoja, raja-alueita, etäisyysleveyksiä ja muuta. Nämä ominaisuudet mahdollistavat käyttäjien tarkkaan tekstin sijoittamisen ja renderöinnin sovelluksissanne. Seuraava esimerkki näyttää, miten ohjelmistokehittäjät voivat renderöidä tekstiä glyphien avulla C++-komentoja käyttäen.

Kuinka renderöidä teksti glyphien kanssa C++-sovelluksissa?

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

Fonttien muokkaus ja editointi C++-API:n avulla

Aspose.Font for C++ mahdollistaa ohjelmistokehittäjien ladata Type1- ja muut tuetut fonttimuodot eri lähteistä, kuten paikallisista tiedostoista, virroista tai URL-osoitteista. Ohjelmistokehittäjät voivat ladata fontteja yksittäin tai erissä, mikä tekee useiden fonttien käsittelystä samanaikaisesti helppoa. Kun fontit on ladattu, kehittäjät voivat päivittää fonttien ominaisuuksia ja tallentaa ne takaisin haluttuun muotoon tai viedä ne helposti muihin formaatteihin. Seuraava esimerkki näyttää, miten ladataan ja puretaan tietoja type1-fonteista C++-sovelluksissa.

Lue fonttimetriikkatiedot Type1-fonttien sisällä C++-sovelluksissa

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

 Suomen