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

Aspose.Font for C++

 
 

C++ Fontu API, lai lasītu, saglabātu un konvertētu fontus

C++ bibliotēka ļauj ielādēt, lasīt, saglabāt un konvertēt dažādus fontu formātus, piemēram, TrueType, WOFF, EOT, OpenType, CFF un Type1, C++ lietojumprogrammās.

Aspose.Font for C++ ir ļoti jaudīgs rīks, kas vienkāršo fontu apstrādi un piedāvā plašu funkciju klāstu programmatūras izstrādātājiem un programmētājiem. Tas ļauj C++ izstrādātājiem strādāt ar dažādiem fontu formātiem un veikt plašu fontu saistītu uzdevumu klāstu. Tas ļauj programmatūras izstrādātājiem ielādēt, ģenerēt, rediģēt un konvertēt fontu failus dažādos formātos, piemēram, TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT un daudzos citos. API var pacelt jūsu fontu saistītos uzdevumus uz nākamo līmeni bez ārējām atkarībām.

Aspose.Font for C++ ir funkcijām bagāta bibliotēka, kas nodrošina visaptverošas fontu manipulācijas iespējas C++ izstrādātājiem. Bibliotēka atbalsta plašu fontu operāciju klāstu, tostarp fontu metadatu izgūšanu, fontu failu ielādi no diska vai straumes, glifu informācijas piekļuvi, fontu konvertēšanu uz dažādiem formātiem, fontu informācijas lasīšanu, fontu failu atjaunināšanu un saglabāšanu diskā, metrisko informāciju nolasīšanu no fontu failiem, teksta renderēšanu, izmantojot fontu glifus, TrueType fontu apvienošanu un daudz ko citu. Tā atbalsta 32‑bitu kā arī 64‑bitu operētājsistēmas.

Aspose.Font for C++ piedāvā uzlabotas tipogrāfijas iespējas, tostarp ligatūru apstrādi, kontekstuālu un brīvprātīgu glifu aizvietošanu, kā arī papildu teksta izkārtojuma iespējas. Šīs funkcijas ir īpaši noderīgas, strādājot ar sarežģītām rakstībām vai valodām, kurām nepieciešama izsmalcināta teksta veidošana un renderēšana. API ir platformu neatkarīgs un ļauj lietotājiem to bez problēmām izmantot dažādās operētājsistēmās, tostarp Windows, Linux un macOS. Ja vēlaties uzlabot fontu manipulācijas iespējas savās C++ lietojumprogrammās, Aspose.Font noteikti ir vērts apsvērt.

Previous Next

Sākšana ar Aspose.Font priekš C++

Ieteicamais veids, kā instalēt Aspose.Font for C++, ir izmantot NuGet. Lūdzu, izmantojiet šādu komandu, lai veiktu vienkāršu instalēšanu.

Instalējiet Aspose.Font priekš C++, izmantojot NuGet komandu

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

Jūs varat lejupielādēt bibliotēku tieši no Aspose.Font for C++ produkta lapas

Fontu konvertēšana uz atbalstītajiem faila formātiem, izmantojot C++ API

Viena no izcilajām Aspose.Font for C++ funkcijām ir spēja konvertēt fontus starp dažādiem atbalstītajiem failu formātiem. Tas kļūst ļoti ērti, kad programmatūras izstrādātājiem jākonvertē fonti uz konkrētu formātu, kas ir saderīgs ar jūsu mērķa vidi vai platformu. Bibliotēka atbalsta nevainojamu konvertēšanu starp TrueType, OpenType, CFF, PostScript Type 1 fontiem un citiem, ļaujot izstrādātājiem apmierināt plašu scenāriju klāstu. Zemāk esošais piemērs parāda, kā ielādēt fontu no jebkura atbalstītā formāta, piemēram, TTF, un konvertēt to uz WOFF2, izmantojot C++ komandas.

Konvertēt TTF uz WOFF2, izmantojot 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);

Ielādēt un izvilkt Type1 fontus, izmantojot C++ API

Aspose.Font for C++ ļauj programmatūras izstrādātājiem ielādēt Type1, kā arī citus atbalstītus fontu formātus no dažādiem avotiem, piemēram, lokāliem failiem, straumēm vai URL. Programmatūras izstrādātāji var ielādēt fontus individuāli vai masveidā, kas ļauj viegli apstrādāt vairākus fontus vienlaicīgi. Kad fonti ir ielādēti, izstrādātāji var atjaunināt to īpašības un saglabāt tos atpakaļ vēlamajā formātā vai viegli eksportēt uz citiem formātiem. Zemāk esošais piemērs parāda, kā ielādēt un izvilkt datus no type1 fontiem C++ lietojumprogrammās.

Kā ielādēt un izvilkt datus no Type1 fontiem, izmantojot 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));

Fontu metriku un glifu atbalsts

Aspose.Font for C++ ir ļoti funkciju bagāta bibliotēka, kas nodrošina piekļuvi plašam fontu metriku klāstam, ieskaitot augstumu, kritumu, līnijas starpu un dažādus citus būtiskus mērījumus. Programmatūras izstrādātāji var iegūt glifu informāciju, piemēram, Unicode vērtības, robežkastes, pārvietošanas platumus un vairāk. Šīs funkcijas ļauj lietotājiem precīzi novietot un attēlot tekstu jūsu lietojumprogrammās. Zemāk esošais piemērs parāda, kā programmatūras izstrādātāji var attēlot tekstu ar glifiem, izmantojot C++ komandas.

Kā attēlot tekstu ar glifiem C++ lietojumprogrammās?

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

Fontu manipulācija un rediģēšana, izmantojot C++ API

Aspose.Font for C++ ļauj programmatūras izstrādātājiem ielādēt Type1, kā arī citus atbalstītus fontu formātus no dažādiem avotiem, piemēram, lokāliem failiem, straumēm vai URL. Programmatūras izstrādātāji var ielādēt fontus individuāli vai masveidā, kas ļauj vienkārši apstrādāt vairākus fontus vienlaicīgi. Kad fonti ir ielādēti, izstrādātāji var atjaunināt to īpašības un saglabāt tos atpakaļ vēlamajā formātā vai viegli eksportēt uz citiem formātiem. Zemāk esošais piemērs parāda, kā ielādēt un izvilkt datus no Type1 fontiem C++ lietojumprogrammās.

Lasīt fontu metriku informāciju no Type1 fontiem C++ lietojumprogrammās

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

 Latviski