Charger des fichiers de police à partir d’un tableau d’octets

Solution API C++ pour charger les polices TTF, WOFF, EOT, Type 1 et CFF à partir d’un MemoryStream.

 

Aspose.Font API Solution vous offre des fonctionnalités étendues pour travailler avec les polices, y compris la conversion, la manipulation des glyphes, la détection des symboles latins, et bien d'autres. Mais la première étape de la manipulation des polices consiste à charger les fichiers de polices pour les utiliser ultérieurement.

Cet article explique comment charger des fichiers de polices à partir de flux, mais pour des informations plus détaillées sur le chargement des polices, reportez-vous à l’article Comment charger des fichiers ? . Vous y trouverez de nombreux exemples de code C++ et comprendrez les objets et les paramètres nécessaires au chargement des polices.

L'API prend en charge plusieurs formats de police, notamment TrueType (police unique), TrueType (collection de polices), Web Open Font Format, Web Open Font Format version 2.0, Embedded OpenType, Adobe Type 1 font (pfa, pfb, afm, pfm) et Format de police compact. Les extraits de code fournis montrent comment charger un fichier True Type Font (TTF) à partir d'un flux.

Comme nous pouvons l’apprendre de Wikipedia TTF signifie TrueType Font et est un format de fichier pour les polices informatiques évolutives. Il a été initialement développé par Apple Computer, mais est maintenant largement utilisé sur les systèmes d’exploitation Mac et Windows. Les fichiers TTF contiennent des instructions sur la façon de rendre chaque caractère d’une police à différentes tailles et styles de police, et ils peuvent être facilement redimensionnés et utilisés dans différentes applications sans perte de qualité. Les polices TTF sont largement utilisées pour la typographie numérique et sont couramment utilisées dans la conception Web, le traitement de texte et la publication assistée par ordinateur.

Pour charger des polices, vous aurez besoin de l'API Aspose.Font for C++, qui est une API de manipulation et de conversion de documents puissante et facile à utiliser pour la plate-forme C++. Pour obtenir l'API, ouvrez le gestionnaire de packages NuGet et recherchez Aspose.Font, puis installez-le. Vous pouvez également utiliser la commande suivante dans la console du gestionnaire de packages.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Charger TTF à partir du tableau d'octets/MemoryStream en utilisant C++

Cet extrait de code est écrit en C++ et montre comment charger un fichier TrueType Font (TTF) à l’aide de l’API Aspose.Font. Le code effectue les étapes suivantes :

  1. Construisez le chemin vers le fichier de police. Ici, DataDir est une variable prédéfinie contenant le chemin d’accès au répertoire où se trouve le fichier de police Montserrat-Regular.ttf. La méthode Path.Combine combine les deux chemins pour créer le chemin d’accès complet au fichier de police.
  2. Chargez les données binaires de la police dans un tableau d’octets. La méthode File.ReadAllBytes() lit le contenu du fichier de police et renvoie les données sous forme de tableau d’octets.
  3. Initialisez un objet FontDefinition . FontType.TTF indique que le fichier de police est une police TrueType (.ttf) et le nouveau ByteContentStreamSource (fontBytes) crée un objet ByteContentStreamSource basé sur les données binaires de police stockées dans le tableau fontBytes.
  4. Chargez la police. La méthode Font.Open() prend l’objet FontDefinition comme paramètre et renvoie la police chargée , qui peut ensuite être utilisé pour d’autres manipulations.

Code C++ pour charger les polices à partir du flux

    using Aspose::Font;
    using Aspose::Font::Sources;
    using Aspose::Font::Ttf;
     // Construct the path to the file
    System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");

	// Load font binary data into the byte array
    System::ArrayPtr<uint8_t> fontBytes = System::IO::File::ReadAllBytes(fontPath);
    
    // Initialize the FontDefinition object  passing TTF as the FontType value, "ttf" as the fileExtension value, 
    // and ByteContentStreamSource object based on the fontBytes array
    System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition (Aspose::Font::FontType::TTF, u"ttf", System::MakeObject<ByteContentStreamSource>(fontBytes));

     // Load the font
    System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);



FAQ

1. Quels sont les paramètres pour charger les polices par programmation ?

Pour un chargement correct des polices, vous devez connaître deux paramètres clés. Ils sont le format de police et le stockage.

2. Où se trouvent les polices sur mon ordinateur ?

Pour voir les polices disponibles sur votre ordinateur, allez dans le répertoire C:>Windows>Fonts. Vous pourrez y gérer vos polices.

3. Comment charger une police depuis un stream ?

Définissez le tableau de bain à l’aide de FontFileDefinition et créez l’objet à l’aide de la méthode Open(). Spécifiez le format de police. Terminez le chargement en utilisant la méthode Aspose.Font.Font.Open().