Charger une police à partir d'un fichier TTF | C++
Contents
[
Hide
Show
]Voici quatre exemples réalisés différemment sur la façon de charger une police à partir du fichier Montserrat-Regular.ttf.
Apprenez d’abord les principes fondamentaux du chargement sur la page Comment charger les polices ?.
Ajoutez les espaces de noms suivants en tête du fichier :
1using namespace Aspose::Font;
2using namespace Aspose::Font::Sources;
3using namespace System.IO;
Chargement à partir du fichier à l’aide de l’objet FileSystemStreamSource
Suivez les étapes suivantes pour réaliser l’opération :
- Construisez le chemin d’accès au fichier.
- Initiez l’objet FontDefiniton.
- Définissez
fileExtension sur
ttf
. - Chargez la police.
1 // Construct path to the file
2 System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
3
4 // Initialize FontDefinition object passing TTF as FontType value and using FontFileDefinition
5 // based on FileSystemStreamSource object, set fileExtension to "ttf"
6 System::SharedPtr<FontFileDefinition> fileDef = System::MakeObject<FontFileDefinition>(u"ttf", System::MakeObject<FileSystemStreamSource>(fontPath));
7 System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, fileDef);
8
9 // Load font
10 System::SharedPtr<Font> font = Font::Open(fontDef);
Chargement à partir du fichier à l’aide de l’objet FileInfo
Pour effectuer le chargement, procédez comme suit :
- Construisez le chemin d’accès au fichier.
- Initiez l’objet
FontDefiniton en passant
TTF
comme valeur FontType. - Obtenez la valeur calculée automatiquement fileExtension.
- Chargez la police.
1 // Construct path to the file
2 System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
3
4 // Initialize FontDefinition object passing TTF as FontType value and using FontFileDefinition
5 // based on FileInfo object, fileExtension value is calculated automatically from FileInfo fields.
6 System::SharedPtr<FontFileDefinition> fileDef = System::MakeObject<FontFileDefinition>(System::MakeObject<System::IO::FileInfo>(fontPath));
7 System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, fileDef);
8
9 // Load the font
10 System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);
Chargement à partir du fichier excluant l’objet FontFileDefinition de la chaîne d’initialisation
Les actions suivantes doivent être entreprises pour charger la police de cette façon :
- Construisez le chemin d’accès au fichier.
- Initiez l’objet
FontDefiniton en passant
TTF
comme valeur FontType,ttf
comme valeur fileExtension et l’objet FileSystemStreamSource . Le paramètre fileExtension n’est pas ici une valeur en double pour le paramètre FontType. - Chargez la police.
1 // Construct path to the file
2 System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
3
4 // Initialize FontDefinition object passing TTF as FontType value, "ttf" as fileExtension value,
5 // and FileSystemStreamSource object. Parameter 'fileExtension' here is not duplicate value
6 // for parameter 'FontType' and it's needed for correct font format detection
7 System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, u"ttf", System::MakeObject<FileSystemStreamSource>(fontPath));
8
9 // Load the font
10 System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);
Chargement de la police à partir du tableau d’octets
Pour charger la police à partir du tableau d’octets :
- Construisez le chemin d’accès au fichier.
- Chargez les données binaires de la police dans le tableau d’octets.
- Initialisez l’objet
FontDefiniton en passant
TTF
comme valeur FontType,ttf
comme valeur fileExtension et ByteContentStreamSource objet basé sur le tableau fontBytes. - Chargez la police.
1 // Construct path to the file
2 System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
3
4 // Load font binary data into byte array
5 System::ArrayPtr<uint8_t> fontBytes = System::IO::File::ReadAllBytes(fontPath);
6
7 // Initialize FontDefinition object passing TTF as FontType value, "ttf" as fileExtension value,
8 // and ByteContentStreamSource object based on fontBytes array
9 System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, u"ttf", System::MakeObject<ByteContentStreamSource>(fontBytes));
10
11 // Load the font
12 System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);
More examples on how to use Aspose.Font are in Aspose.Font.Examples.CPP.sln solution, in the cpp-examples of the Aspose.Font Documentation.