バイト配列からフォント ファイルをロードする

MemoryStream から TTF、WOFF、EOT、Type 1、および CFF フォントをロードするための C++ API ソリューション。

 

Aspose.Font API ソリューションは、変換、グリフ操作、ラテン記号検出など、フォントを操作するための広範な機能を提供します。しかし、フォント操作の最初のステップは、後で使用するためにフォント ファイルをロードすることです。

この記事では、ストリームからフォント ファイルをロードする方法について概説しますが、フォントのロードに関する詳細については、 How to Load Files? 。そこには多数の C++ コード例があり、フォントの読み込みに必要なオブジェクトとパラメーターを理解できます。

API は、TrueType (単一フォント)、TrueType (フォント コレクション)、Web Open Font Format、Web Open Font Format バージョン 2.0、Embedded OpenType、Adobe Type 1 フォント (pfa、pfb、afm、pfm)、およびコンパクト フォント形式。提供されているコード スニペットは、ストリームから True Type フォント (TTF) ファイルをロードする方法を示しています。

ウィキペディア からわかるように、TTF は TrueType フォントの略で、スケーラブルなコンピューター フォントのファイル形式です。もともとは Apple Computer によって開発されましたが、現在は Mac と Windows オペレーティング システムの両方で広く使用されています。 TTFファイルには、フォントの各文字をさまざまなフォントサイズとスタイルでレンダリングする方法に関する指示が含まれており、品質を損なうことなく簡単にサイズを変更してさまざまなアプリケーションで使用できます。 TTF フォントは、デジタル タイポグラフィで広く使用されており、Web デザイン、ワープロ、デスクトップ パブリッシングで一般的に使用されています。

フォントをロードするには、C++ プラットフォーム用の強力で使いやすいドキュメント操作および変換 API である Aspose.Font for C++ API が必要です。 API を取得するには、NuGet パッケージ マネージャーを開き、Aspose.Font を検索してインストールします。パッケージ マネージャー コンソールで次のコマンドを使用することもできます。

Package Manager Console Command


    PM> Install-Package Aspose.Font

C++ を使用してバイト配列/MemoryStream から TTF をロードする

このコード スニペットは C++ で記述されており、Aspose.Font API を使用して TrueType フォント (TTF) ファイルをロードする方法を示しています。コードは次の手順を実行します。

  1. フォント ファイルへのパスを作成します。ここで、DataDir は、フォント ファイル Montserrat-Regular.ttf が置かれているディレクトリへのパスを含む事前定義された変数です。 Path.Combine メソッドは、2 つのパスを組み合わせて、フォント ファイルへの完全なパスを作成します。
  2. フォントのバイナリ データをバイト配列に読み込みます。 File.ReadAllBytes() メソッドは、フォント ファイルの内容を読み取り、データをバイト配列として返します。
  3. FontDefinition オブジェクトを初期化します。 FontType.TTF は、フォント ファイルが TrueType フォント (.ttf) であり、新しい ByteContentStreamSource (fontBytes) は、fontBytes 配列に格納されているフォント バイナリ データに基づいて ByteContentStreamSource オブジェクトを作成します。
  4. フォントを読み込みます。 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);



よくある質問

1. プログラムでフォントをロードするためのパラメータは何ですか?

フォントを正しくロードするには、2 つの重要なパラメータを知っておく必要があります。それらはフォント形式とストレージです。

2. フォントはコンピューターのどこにありますか?

コンピュータで使用可能なフォントを確認するには、C:>Windows>Fonts ディレクトリに移動します。そこでフォントを管理できます。

3. ストリームからフォントをロードする方法は?

FontFileDefinition を使用してバス配列を設定し、Open() メソッドを使用してオブジェクトを作成します。フォント形式を指定します。 Aspose.Font.Font.Open() メソッドを使用して読み込みを終了します。