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

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

Aspose.Slides は、システムにインストールせずにプレゼンテーションで使用されるフォントを読み込むことができます。これにより、PDF、画像、その他のサポート形式などのエクスポート出力が環境間で一貫した外観になります。フォントはカスタムディレクトリから読み込まれます。

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

以下のコード例はフォント読み込みの手順を示しています:

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

// 指定されたフォルダーからカスタムフォントを読み込みます。
FontsLoader.loadExternalFonts(fontFolders);

Presentation presentation = null;
try {
    presentation = new Presentation("sample.pptx");
    
    // 読み込んだフォントを使用してプレゼンテーションをレンダリング/エクスポートします(例: PDF、画像、または他の形式)。
    presentation.save("output.pdf", SaveFormat.Pdf);
} finally {
    if (presentation != null) presentation.dispose();

    // 作業が完了した後にフォントキャッシュをクリアします。
    FontsLoader.clearCache();
}

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

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

以下の Java コードは getFontFolders の使用方法を示しています:

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

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

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

以下の Java コードは setDocumentLevelFontSources の使用例です:

byte[] memoryFont1 = Files.readAllBytes("customfonts/CustomFont1.ttf");
byte[] memoryFont2 = Files.readAllBytes("customfonts/CustomFont2.ttf");

LoadOptions loadOptions = new LoadOptions();
loadOptions.getDocumentLevelFontSources().setFontFolders(new String[] { "assets/fonts", "global/fonts" });
loadOptions.getDocumentLevelFontSources().setMemoryFonts(new byte[][] { memoryFont1, memoryFont2 });

Presentation pres = new Presentation("MyPresentation.pptx", loadOptions);
try {
    // プレゼンテーションで作業する
    // CustomFont1、CustomFont2、および assets\fonts と global\fonts フォルダーとそのサブフォルダー内のフォントはプレゼンテーションで使用可能です
} finally {
    if (pres != null) pres.dispose();
}

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

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

以下の Java コードはバイト配列によるフォント読み込みの手順を示しています:

FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALN.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNBI.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNI.TTF")));

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

よくある質問

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

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

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

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

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

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

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

はい。独自のフォントフォルダーを指定するか、バイト配列からフォントをロードしてください。これにより、コンテナー イメージ内のシステムフォント ディレクトリへの依存がなくなります。

ライセンスに関して—カスタムフォントを制限なく埋め込むことは可能ですか?

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