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

カスタムフォントのロード

Aspose.Slides では、システムにインストールせずにプレゼンテーションで使用されるフォントをロードできます。これにより、PDF、画像、その他のサポート対象フォーマットなどのエクスポート出力に影響し、環境間で文書の外観が一貫します。フォントはカスタムディレクトリからロードされます。

  1. フォントファイルが格納されたフォルダーを1つ以上指定します。
  2. 静的なFontsLoader.LoadExternalFontsメソッドを呼び出し、これらのフォルダーからフォントをロードします。
  3. プレゼンテーションをロードし、レンダリング/エクスポートします。
  4. FontsLoader.ClearCacheを呼び出してフォントキャッシュをクリアします。

以下のコード例はフォントのロードプロセスを示しています:

// カスタムフォントファイルが含まれるフォルダーを定義します。
string[] fontFolders = { externalFontFolder1, externalFontFolder2 };

// 指定したフォルダーからカスタムフォントをロードします。
FontsLoader.LoadExternalFonts(fontFolders);

using Presentation presentation = new Presentation("sample.pptx");

// ロードしたフォントを使用してプレゼンテーションをレンダリング/エクスポートします(例: PDF、画像、その他の形式)。
presentation.Save("output.pdf", SaveFormat.Pdf);

// 作業が完了したらフォントキャッシュをクリアします。
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 を確認してください。