C#でのカスタム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();
}