.NETでPowerPointフォントをカスタマイズ

カスタムフォントの読み込み

Aspose.Slides を使用すると、プレゼンテーションで使用されるフォントをインストールせずに読み込むことができます。フォントはカスタムディレクトリから読み込まれます。

  1. FontsLoader クラスのインスタンスを作成し、LoadExternalFonts メソッドを呼び出します。
  2. 表示するプレゼンテーションをロードします。
  3. FontsLoader クラスでキャッシュをクリアします。

この C# コードはフォント読み込みプロセスを示しています:

// ドキュメントディレクトリへのパス
string dataDir = "C:\\";

// フォントを検索するフォルダー
String[] folders = new String[] { dataDir };

// カスタムフォントディレクトリのフォントをロード
FontsLoader.LoadExternalFonts(folders);

// いくつかの作業を行い、プレゼンテーション/スライドのレンダリングを実行
using (Presentation presentation = new Presentation(dataDir + "DefaultFonts.pptx"))
    presentation.Save(dataDir + "NewFonts_out.pptx", SaveFormat.Pptx);

// フォントキャッシュをクリア
FontsLoader.ClearCache();

カスタムフォントフォルダーの取得

Aspose.Slides は、GetFontFolders メソッドを提供し、フォントフォルダーを取得できるようにします。このメソッドは、LoadExternalFonts メソッドで追加されたフォルダーとシステムフォントフォルダーを返します。

この C# コードは GetFontFolders の使用方法を示しています:

// この行はフォントファイルがチェックされるフォルダーを出力します。
// それらは LoadExternalFonts メソッドで追加されたフォルダーとシステムフォントフォルダーです。
string[] fontFolders = FontsLoader.GetFontFolders();

プレゼンテーションで使用するカスタムフォントの指定

Aspose.Slides は、プレゼンテーションで使用する外部フォントを指定できるように、DocumentLevelFontSources プロパティを提供します。

この C# コードは DocumentLevelFontSources プロパティの使用方法を示しています:

byte[] memoryFont1 = File.ReadAllBytes("customfonts\\CustomFont1.ttf");
byte[] memoryFont2 = File.ReadAllBytes("customfonts\\CustomFont2.ttf");

LoadOptions loadOptions = new LoadOptions();
loadOptions.DocumentLevelFontSources.FontFolders = new string[] { "assets\\fonts", "global\\fonts" };
loadOptions.DocumentLevelFontSources.MemoryFonts = new byte[][] { memoryFont1, memoryFont2 };
using (IPresentation presentation = new Presentation("MyPresentation.pptx", loadOptions))
{
    // プレゼンテーションで作業します
    // CustomFont1、CustomFont2、および assets\fonts と global\fonts フォルダーとそのサブフォルダー内のフォントはプレゼンテーションで利用可能です
}

フォントの外部管理

Aspose.Slides は、バイナリ データから外部フォントを読み込むために、LoadExternalFont(byte[] data) メソッドを提供します。

この C# コードはバイト配列によるフォント読み込みプロセスを示しています:

FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALN.TTF"));
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALNBI.TTF"));
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALNI.TTF"));

try
{
    using (Presentation pres = new Presentation(""))
    {
        // プレゼンテーションの存続期間中に外部フォントがロードされます
    }
}
finally
{
    FontsLoader.ClearCache();
}

FAQ

カスタムフォントはすべての形式(PDF、PNG、SVG、HTML)へのエクスポートに影響しますか?

はい。接続されたフォントは、すべてのエクスポート形式でレンダラによって使用されます。

カスタムフォントは自動的に生成された PPTX に埋め込まれますか?

いいえ。フォントをレンダリング用に登録することは、PPTX に埋め込むこととは異なります。プレゼンテーション ファイルにフォントを含める必要がある場合は、明示的な 埋め込み機能 を使用してください。

カスタムフォントに特定のグリフが欠けている場合のフォールバック動作を制御できますか?

はい。フォント置換置換ルール、および フォールバックセット を構成して、要求されたグリフが欠如しているときに使用するフォントを正確に定義できます。

Linux/Docker コンテナー内でフォントをシステム全体にインストールせずに使用できますか?

はい。独自のフォント フォルダーを指すか、バイト配列からフォントを読み込むことで、コンテナー イメージ内のシステム フォント ディレクトリへの依存を取り除くことができます。

ライセンスについて—カスタムフォントを制限なく埋め込むことはできますか?

フォントのライセンス遵守は利用者の責任です。ライセンス条件は様々で、埋め込みや商用利用を禁止しているものもあります。出力を配布する前に、必ずフォントの EULA を確認してください。