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

Aspose.Font for C++

 
 

C++ API fontů pro čtení, ukládání a převod fontů

Knihovna C++ umožňuje načítat, číst, ukládat a převádět různé formáty fontů, jako jsou TrueType, WOFF, EOT, OpenType, CFF a Type1, v aplikacích založených na C++.

Aspose.Font pro C++ je velmi výkonný nástroj, který zjednodušuje práci s fonty a nabízí rozsáhlou sadu funkcí pro vývojáře softwaru a programátory. Umožňuje vývojářům C++ pracovat s různými formáty fontů a provádět širokou škálu úkolů souvisejících s fonty. Umožňuje vývojářům softwaru načítat, generovat, upravovat a konvertovat soubory fontů v různých formátech, jako jsou TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT a mnoho dalších. API může pozvednout vaše úkoly související s fonty na další úroveň bez jakýchkoli externích závislostí.

Aspose.Font pro C++ je bohatá na funkce knihovna, která poskytuje komplexní možnosti manipulace s fonty pro vývojáře C++. Knihovna podporuje širokou škálu operací s fonty, včetně extrakce metadat fontu, načítání souborů fontů z disku nebo proudu, přístupu k informacím o glyfech, konverze fontů do různých formátů, čtení informací o fontu, aktualizace souborů fontů a jejich ukládání na disk, čtení metrických informací ze souborů fontů, vykreslování textu pomocí glyfů fontu, slučování TrueType fontů a mnohem více. Podporuje 32‑bitové i 64‑bitové operační systémy.

Aspose.Font pro C++ nabízí pokročilé typografické možnosti, včetně zpracování ligatur, kontextových a volitelných substitucí glyfů a pokročilých možností rozvržení textu. Tyto funkce jsou zvláště užitečné při práci s komplexními skripty nebo jazyky, které vyžadují sofistikované tvarování a vykreslování textu. API je multiplatformní a umožňuje uživatelům jej bezproblémově používat na různých operačních systémech, včetně Windows, Linuxu a macOS. Pokud hledáte způsob, jak rozšířit možnosti manipulace s fonty ve svých C++ aplikacích, Aspose.Font je rozhodně hodný zvážení.

Previous Next

Začínáme s Aspose.Font pro C++

Doporučený způsob instalace Aspose.Font pro C++ je pomocí NuGet. Pro hladkou instalaci použijte následující příkaz.

Instalace Aspose.Font pro C++ pomocí příkazu NuGet

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

Knihovnu si můžete stáhnout přímo ze stránky produktu Aspose.Font pro C++.

Konverze fontů do podporovaných formátů souborů pomocí C++ API

Jednou z významných funkcí Aspose.Font pro C++ je jeho schopnost převádět písma mezi různými podporovanými formáty souborů. To je velmi pohodlné, když vývojáři softwaru potřebují převést písma do konkrétního formátu kompatibilního s vaším cílovým prostředím nebo platformou. Knihovna podporuje bezproblémový převod mezi TrueType, OpenType, CFF, PostScript Type 1 písmy a dalšími, což vývojářům umožňuje pokrýt širokou škálu scénářů. Následující příklad ukazuje, jak načíst písmo z libovolného podporovaného formátu, jako je TTF, a převést jej na WOFF2 pomocí příkazů v C++.

Převod TTF na WOFF2 pomocí 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);

Načtení a extrakce fontů Type1 pomocí C++ API

Aspose.Font pro C++ umožňuje vývojářům softwaru načítat Type1 i další podporované formáty fontů z různých zdrojů, jako jsou místní soubory, proudy nebo URL adresy. Vývojáři mohou načítat fonty jednotlivě nebo hromadně, což usnadňuje zpracování více fontů najednou. Po načtení mohou vývojáři aktualizovat vlastnosti fontů a uložit je zpět do požadovaného formátu nebo je snadno exportovat do jiných formátů. Následující příklad ukazuje, jak načíst a extrahovat data z fontů typu 1 v aplikacích C++.

Jak načíst a extrahovat data z fontů Type1 pomocí 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));

Podpora metrik fontů a glyfů

Aspose.Font pro C++ je velmi bohatá knihovna, která poskytuje přístup k množství metrik fontů, včetně výšky vzestupu, klesání, mezery mezi řádky a dalších důležitých měření. Vývojáři mohou získávat informace o glyfech, jako jsou hodnoty Unicode, ohraničující rámečky, posuvné šířky a další. Tyto funkce umožňují uživatelům přesně umisťovat a vykreslovat text ve vašich aplikacích. Následující příklad ukazuje, jak vývojáři mohou vykreslovat text pomocí glyfů s využitím příkazů C++.

Jak vykreslit text s glyphy v aplikacích 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;
    }

Manipulace s fonty a úpravy pomocí C++ API

Aspose.Font pro C++ umožňuje vývojářům softwaru načítat Type1 i další podporované formáty písem z různých zdrojů, jako jsou místní soubory, proudy nebo URL adresy. Vývojáři mohou načítat písma jednotlivě nebo hromadně, což usnadňuje zpracování více písem najednou. Po načtení mohou vývojáři aktualizovat vlastnosti písem a uložit je zpět do požadovaného formátu nebo je snadno exportovat do jiných formátů. Následující příklad ukazuje, jak načíst a extrahovat data z Type1 písem v aplikacích C++.

Číst informace o metrikách fontů z Type1 fontů v aplikacích 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);

 Čeština