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

Aspose.Font for C++

 
 

API czcionek C++ do odczytu, zapisu i konwersji czcionek

Biblioteka C++ umożliwia ładowanie, odczyt, zapis i konwersję różnych formatów czcionek, takich jak TrueType, WOFF, EOT, OpenType, CFF i Type1 w aplikacjach opartych na C++.

Aspose.Font dla C++ to bardzo potężne narzędzie, które upraszcza obsługę czcionek i oferuje rozbudowany zestaw funkcji dla programistów i twórców oprogramowania. Umożliwia programistom C++ pracę z różnymi formatami czcionek oraz wykonywanie szerokiego zakresu zadań związanych z czcionkami. Pozwala programistom ładować, generować, edytować i konwertować pliki czcionek w różnych formatach, takich jak TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT i wiele innych. API może podnieść Twoje zadania związane z czcionkami na wyższy poziom bez żadnych zewnętrznych zależności.

Aspose.Font dla C++ to bogata w funkcje biblioteka, która zapewnia kompleksowe możliwości manipulacji czcionkami dla programistów C++. Biblioteka obsługuje szeroki zakres operacji na czcionkach, w tym wyodrębnianie metadanych czcionek, ładowanie plików czcionek z dysku lub strumienia, dostęp do informacji o glifach, konwertowanie czcionek do różnych formatów, odczytywanie informacji o czcionkach, aktualizowanie plików czcionek i zapisywanie ich na dysku, odczytywanie informacji o metrykach z plików czcionek, renderowanie tekstu przy użyciu glifów czcionki, łączenie czcionek TrueType i wiele innych. Obsługuje systemy operacyjne 32‑bitowe oraz 64‑bitowe.

Aspose.Font dla C++ oferuje zaawansowane możliwości typograficzne, w tym obsługę ligatur, kontekstowych i dowolnych substytucji glifów oraz zaawansowane opcje układu tekstu. Funkcje te są szczególnie przydatne przy pracy z złożonymi skryptami lub językami, które wymagają zaawansowanego kształtowania i renderowania tekstu. API jest wieloplatformowe i umożliwia użytkownikom płynne korzystanie z niego na różnych systemach operacyjnych, w tym Windows, Linux i macOS. Jeśli chcesz zwiększyć możliwości manipulacji czcionkami w swoich aplikacjach C++, Aspose.Font z pewnością warto rozważyć.

Previous Next

Rozpoczęcie pracy z Aspose.Font dla C++

Zalecany sposób instalacji Aspose.Font for C++ to użycie NuGet. Proszę użyć poniższego polecenia, aby przeprowadzić płynną instalację.

Zainstaluj Aspose.Font dla C++ za pomocą polecenia NuGet

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

Możesz pobrać bibliotekę bezpośrednio ze Aspose.Font for C++ strony produktu

Konwersja czcionek do obsługiwanych formatów plików za pomocą interfejsu API C++

Jedną z godnych uwagi funkcji Aspose.Font for C++ jest możliwość konwertowania czcionek pomiędzy różnymi obsługiwanymi formatami plików. Jest to bardzo wygodne, gdy programiści muszą przekonwertować czcionki do konkretnego formatu zgodnego z docelowym środowiskiem lub platformą. Biblioteka obsługuje płynną konwersję między czcionkami TrueType, OpenType, CFF, PostScript Type 1 i innymi, umożliwiając programistom obsługę szerokiego zakresu scenariuszy. Poniższy przykład pokazuje, jak załadować czcionkę z dowolnego obsługiwanego formatu, takiego jak TTF, i przekonwertować ją na WOFF2 przy użyciu poleceń C++.

Konwertuj TTF na WOFF2 przy użyciu interfejsu API C++

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

Ładowanie i wyodrębnianie czcionek Type1 za pomocą interfejsu API C++

Aspose.Font dla C++ umożliwia programistom ładowanie formatów czcionek Type1 oraz innych obsługiwanych formatów z różnych źródeł, takich jak pliki lokalne, strumienie lub adresy URL. Programiści mogą ładować czcionki pojedynczo lub hurtowo, co ułatwia jednoczesne przetwarzanie wielu czcionek. Po załadowaniu programiści mogą aktualizować właściwości czcionek i zapisywać je ponownie w żądanym formacie lub łatwo eksportować do innych formatów. Poniższy przykład pokazuje, jak ładować i wyodrębniać dane z czcionek Type1 w aplikacjach C++.

Jak ładować i wyodrębniać dane z czcionek Type1 przy użyciu interfejsu API C++?

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

Obsługa metryk czcionek i glifów

Aspose.Font dla C++ to bardzo bogata w funkcje biblioteka, która zapewnia dostęp do licznych metryk czcionek, w tym wzniesienia, opadania, odstępu linii oraz różnych innych istotnych pomiarów. Programiści mogą pobierać informacje o glifach, takie jak wartości Unicode, ramki ograniczające, szerokości przesunięć i inne. Funkcje te umożliwiają użytkownikom precyzyjne pozycjonowanie i renderowanie tekstu w aplikacjach. Poniższy przykład pokazuje, jak programiści mogą renderować tekst przy użyciu glifów za pomocą poleceń C++.

Jak renderować tekst przy użyciu glifów w aplikacjach C++?

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

Manipulacja i edycja czcionek za pomocą interfejsu API C++

Aspose.Font dla C++ umożliwia programistom ładowanie czcionek Type1 oraz innych obsługiwanych formatów czcionek z różnych źródeł, takich jak pliki lokalne, strumienie lub adresy URL. Programiści mogą ładować czcionki pojedynczo lub hurtowo, co ułatwia przetwarzanie wielu czcionek jednocześnie. Po załadowaniu programiści mogą aktualizować właściwości czcionek i zapisywać je ponownie w żądanym formacie lub eksportować do innych formatów z łatwością. Poniższy przykład pokazuje, jak ładować i wyodrębniać dane z czcionek type1 w aplikacjach C++.

Odczytaj informacje o metrykach czcionek Type1 w aplikacjach C++

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

 Polski