Cargar una fuente desde un archivo TTF | C++
Contents
[
Hide
Show
]A continuación se describen cuatro ejemplos realizados de forma diferente sobre cómo cargar una fuente desde el archivo Montserrat-Regular.ttf.
Primero aprenda los fundamentos de carga en la página ¿Cómo cargar fuentes?.
Agregue los siguientes espacios de nombres al principio del archivo:
1using namespace Aspose::Font;
2using namespace Aspose::Font::Sources;
3using namespace System.IO;
Cargando desde el archivo usando el objeto FileSystemStreamSource
Realice los siguientes pasos para cumplir con la operación:
- Construya la ruta al archivo.
- Inicie el objeto FontDefiniton.
- Establezca
fileExtension en
ttf
. - Cargue la fuente.
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);
Cargando desde el archivo usando el objeto FileInfo
Para completar la carga haga lo siguiente:
- Construya la ruta al archivo.
- Inicie el objeto
FontDefiniton pasando
TTF
como valor FontType. - Obtenga el valor calculado automáticamente fileExtension.
- Cargue la fuente.
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);
Cargando desde el archivo excluyendo el objeto FontFileDefinition de la cadena de inicialización
Se deben realizar las siguientes acciones para cargar la fuente de esta manera:
- Construya la ruta al archivo.
- Inicie el objeto
FontDefiniton pasando
TTF
como valor FontType,ttf
como valor fileExtension y objeto FileSystemStreamSource . El parámetro fileExtension aquí no es un valor duplicado para el parámetro FontType. - Cargue la fuente.
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);
Cargando la fuente desde la matriz de bytes
Para cargar la fuente desde la matriz de bytes:
- Construya la ruta al archivo.
- Cargue datos binarios de fuente en la matriz de bytes.
- Inicialice el objeto
FontDefiniton pasando
TTF
como valor FontType,ttf
como valor fileExtension y ByteContentStreamSource objeto basado en la matriz fontBytes. - Cargue la fuente.
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);
Hay más ejemplos sobre cómo usar Aspose.Font en la solución Aspose.Font.Examples.CPP.sln, en los cpp-examples de la Documentación de Aspose.Font.