PythonでのカスタムPowerPointフォント

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

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

  1. FontsLoaderクラスのインスタンスを作成し、load_external_fontsメソッドを呼び出します。
  2. レンダリングされるプレゼンテーションを読み込みます。
  3. FontsLoaderクラスのキャッシュをクリアします。

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

import aspose.slides as slides

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

# フォントを探すフォルダ
folders = [ dataDir ]

# カスタムフォントディレクトリのフォントを読み込みます
slides.FontsLoader.load_external_fonts(folders)

# いくつかの作業を行い、プレゼンテーション/スライドのレンダリングを行います
with slides.Presentation(path + "DefaultFonts.pptx") as presentation:
    presentation.save("NewFonts_out.pptx", slides.export.SaveFormat.PPTX)

# フォントキャッシュをクリアします
slides.FontsLoader.clear_cache()

カスタムフォントフォルダを取得する

Aspose.Slidesでは、フォントフォルダを見つけるためにget_font_folders()メソッドを提供しています。このメソッドは、LoadExternalFontsメソッドを通じて追加されたフォルダとシステムフォントフォルダを返します。

このPythonコードはget_font_folders()の使い方を示しています:

# この行は、フォントファイルがチェックされるフォルダを出力します。
# それらはload_external_fontsメソッドおよびシステムフォントフォルダを通じて追加されたフォルダです。
fontFolders = slides.FontsLoader.get_font_folders()

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

Aspose.Slidesでは、プレゼンテーションで使用される外部フォントを指定するためにdocument_level_font_sourcesプロパティを提供しています。

このPythonコードはdocument_level_font_sourcesプロパティの使い方を示しています:

import aspose.slides as slides

with open(path + "CustomFont1.ttf", "br") as font1:
    memoryFont1 = font1.read()
    with open(path + "CustomFont2.ttf", "br") as font2:
        memoryFont2 = font2.read()

        loadOptions = slides.LoadOptions()
        loadOptions.document_level_font_sources.font_folders =  ["assets\\fonts", "global\\fonts"] 
        loadOptions.document_level_font_sources.memory_fonts = [ memoryFont1, memoryFont2 ]
        with slides.Presentation(path + "DefaultFonts.pptx", loadOptions) as presentation:
            # プレゼンテーションで作業します
            # CustomFont1, CustomFont2、およびassets\fonts & global\fontsフォルダおよびそのサブフォルダからのフォントがプレゼンテーションで利用可能です
            print(len(presentation.slides))

フォントを外部で管理する

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

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

from aspose.slides import FontsLoader, Presentation

def read_all_bytes(path):
    with open(path, "rb") as in_file:
        bytes = in_file.read()
    return bytes

FontsLoader.load_external_font(read_all_bytes("ARIALN.TTF"))
FontsLoader.load_external_font(read_all_bytes("ARIALNBI.TTF"))
FontsLoader.load_external_font(read_all_bytes("ARIALNI.TTF"))

try:
    with Presentation() as pres:
        # プレゼンテーションライフタイム中に読み込まれた外部フォント
        print("処理中")
finally:
    FontsLoader.clear_cache()