1. Des produits
  2.   Font
  3.   C++
  4.   Aspose.Font pour C++

Aspose.Font pour C++

 
 

API de polices C++ pour lire, enregistrer et convertir les polices

La bibliothèque C++ permet de charger, lire, enregistrer et convertir différents formats de polices tels que TrueType, WOFF, EOT, OpenType, CFF et Type1 dans des applications basées sur C++.

Aspose.Font for C++ est un outil très puissant qui simplifie la gestion des polices et offre un ensemble complet de fonctionnalités pour les développeurs et programmeurs. Il permet aux développeurs C++ de travailler avec divers formats de police et d'effectuer un large éventail de tâches liées aux polices. Il permet aux développeurs de charger, générer, éditer et convertir des fichiers de police dans différents formats, tels que TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT et bien d'autres. L'API peut porter vos tâches liées aux polices à un niveau supérieur sans aucune dépendance externe.

Aspose.Font pour C++ est une bibliothèque riche en fonctionnalités qui offre des capacités complètes de manipulation de polices pour les développeurs C++. La bibliothèque prend en charge un large éventail d'opérations sur les polices, notamment l'extraction des métadonnées de police, le chargement de fichiers de police depuis le disque ou un flux, l'accès aux informations de glyphes, la conversion des polices vers différents formats, la lecture des informations de police, la mise à jour des fichiers de police et leur enregistrement sur le disque, la lecture des informations métriques à partir des fichiers de police, le rendu du texte en utilisant les glyphes de police, la fusion de polices TrueType et bien plus encore. Elle prend en charge les systèmes d'exploitation 32 bits ainsi que 64 bits.

Aspose.Font pour C++ offre des capacités typographiques avancées, notamment la gestion des ligatures, des substitutions de glyphes contextuelles et discrétionnaires, ainsi que des options avancées de mise en page du texte. Ces fonctionnalités sont particulièrement utiles lors du travail avec des scripts complexes ou des langues qui nécessitent un façonnage et un rendu du texte sophistiqués. L'API est multiplateforme et permet aux utilisateurs de l'utiliser de manière transparente sur différents systèmes d'exploitation, notamment Windows, Linux et macOS. Si vous cherchez à améliorer les capacités de manipulation de polices dans vos applications C++, Aspose.Font vaut sans aucun doute la peine d'être envisagé.

Previous Next

Premiers pas avec Aspose.Font pour C++

La méthode recommandée pour installer Aspose.Font pour C++ est d'utiliser NuGet. Veuillez utiliser la commande suivante pour une installation fluide.

Installer Aspose.Font pour C++ via la commande NuGet

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

Vous pouvez télécharger la bibliothèque directement depuis la page produit Aspose.Font for C++.

Conversion de polices vers les formats de fichiers pris en charge via l'API C++

L'une des fonctionnalités remarquables d'Aspose.Font pour C++ est sa capacité à convertir les polices entre différents formats de fichiers pris en charge. Cela devient très pratique lorsque les développeurs doivent convertir des polices vers un format spécifique compatible avec votre environnement ou plateforme cible. La bibliothèque prend en charge la conversion fluide entre les polices TrueType, OpenType, CFF, PostScript Type 1, et plus encore, permettant aux développeurs de répondre à un large éventail de scénarios. L'exemple suivant montre comment charger une police depuis l'un des formats pris en charge comme le TTF et la convertir en WOFF2 à l'aide de commandes C++.

Convertir TTF en WOFF2 en utilisant l'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);

Charger et extraire les polices Type1 via l'API C++

Aspose.Font pour C++ permet aux développeurs de charger les polices Type1 ainsi que d'autres formats de police pris en charge à partir de différentes sources, telles que des fichiers locaux, des flux ou des URL. Les développeurs peuvent charger les polices individuellement ou en masse, ce qui facilite le traitement de plusieurs polices simultanément. Une fois chargées, les développeurs peuvent mettre à jour les propriétés des polices et les enregistrer dans le format souhaité ou les exporter vers d'autres formats facilement. L'exemple suivant montre comment charger et extraire des données des polices type1 dans des applications C++.

Comment charger et extraire les données des polices Type1 en utilisant l'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));

Prise en charge des métriques de police et des glyphes

Aspose.Font pour C++ est une bibliothèque très riche en fonctionnalités qui donne accès à une multitude de métriques de police, y compris l'ascension, la descente, l'écart de ligne et diverses autres mesures essentielles. Les développeurs peuvent récupérer les informations des glyphes telles que les valeurs Unicode, les boîtes englobantes, les largeurs d'avance, etc. Ces fonctionnalités permettent aux utilisateurs de positionner et de rendre le texte avec précision dans vos applications. L'exemple suivant montre comment les développeurs peuvent rendre le texte avec les glyphes en utilisant des commandes C++.

Comment rendre du texte avec les glyphes dans les applications 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;
    }

Manipulation et édition de polices via l'API C++

Aspose.Font pour C++ permet aux développeurs de logiciels de charger les polices Type1 ainsi que d'autres formats de polices pris en charge à partir de différentes sources, telles que des fichiers locaux, des flux ou des URL. Les développeurs peuvent charger les polices individuellement ou en masse, ce qui facilite le traitement de plusieurs polices simultanément. Une fois chargées, les développeurs peuvent mettre à jour les propriétés des polices et les enregistrer dans le format souhaité ou les exporter vers d'autres formats facilement. L'exemple suivant montre comment charger et extraire des données des polices Type1 dans des applications C++.

Lire les informations de métriques de police à partir des polices Type1 dans les applications 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);

 Français