バイト配列からフォントファイルをロード
C++ API ソリューションで MemoryStream から TTF、WOFF、EOT、Type 1、CFF フォントをロードします。
Aspose.Font API ソリューションは、フォントの変換、グリフ操作、ラテン文字シンボル検出など、フォントに関する幅広い機能を提供します。しかし、フォント操作の最初のステップは、後で使用するためにフォントファイルをロードすることです。
この記事ではストリームからフォントファイルをロードする方法を概説しますが、フォントのロードに関する詳細情報については、記事 How to Load Files? を参照してください。そこでは多数の C++ コード例が掲載されており、フォントロードに必要なオブジェクトやパラメータを理解できます。
API は TrueType(単一フォント)、TrueType(フォントコレクション)、Web Open Font Format、Web Open Font Format version 2.0、Embedded OpenType、Adobe Type 1 フォント(pfa、pfb、afm、pfm)、Compact Font Format など、いくつかのフォント形式をサポートしています。提供されたコードスニペットは、ストリームから True Type Font(TTF)ファイルをロードする方法を示しています。
私たちが Wikipedia から学べるように、TTF は TrueType Font の略で、スケーラブルなコンピュータフォントのファイル形式です。元は Apple Computer によって開発されましたが、現在では Mac と Windows の両方のオペレーティングシステムで広く使用されています。TTF ファイルは、フォントの各文字をさまざまなフォントサイズやスタイルでレンダリングする方法を指示する情報を含んでおり、品質を損なうことなく簡単にサイズ変更や異なるアプリケーションでの使用が可能です。TTF フォントはデジタルタイポグラフィで広く使用され、ウェブデザイン、文書作成、デスクトップ出版で一般的に利用されています。
フォントをロードするには、C++ 用 Aspose.Font API が必要です。この API は、C++ プラットフォーム向けの強力で使いやすいドキュメント操作および変換 API です。API を取得するには、NuGet パッケージマネージャを開き、Aspose.Font を検索してインストールします。また、Package Manager Console で次のコマンドを使用することもできます。
Package Manager Console Command
PM> Install-Package Aspose.Font
C++ を使用したバイト配列/MemoryStream から TTF をロード
このコードスニペットは C++ で記述されており、Aspose.Font API を使用して TrueType Font(TTF)ファイルをロードする方法を示します。コードは次の手順を実行します。
- フォントファイルへのパスを構築します。ここで、DataDir はフォントファイル Montserrat-Regular.ttf が格納されているディレクトリへのパスを含む事前定義された変数です。Path.Combine メソッドは 2 つのパスを結合してフォントファイルへの完全なパスを作成します。
- フォントのバイナリデータをバイト配列にロードします。File.ReadAllBytes() メソッドはフォントファイルの内容を読み取り、バイト配列としてデータを返します。
- FontDefinition オブジェクトを初期化します。 FontType.TTF はフォントファイルが TrueType Font(.ttf)であることを示し、new ByteContentStreamSource (fontBytes) は fontBytes 配列に格納されたフォントバイナリデータを基に ByteContentStreamSource オブジェクトを作成します。
- フォントをロードします。 Font.Open() メソッドは FontDefinition オブジェクトをパラメータとして受け取り、ロードされたフォントを返します。そのフォントはさらに操作に使用できます。
ストリームからフォントをロードするための C++ コード
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);