.NET のフォント置換に対する警告コールバックを取得

概要

Aspose.Slides for .NET は、レンダリング中に必要なフォントがマシンに存在しない場合のフォント置換に対して警告コールバックを受け取ることができます。これらのコールバックは、フォントが欠落している、またはアクセスできない問題の診断に役立ちます。

警告コールバックの有効化

Aspose.Slides for .NET は、プレゼンテーション スライドのレンダリング時に警告コールバックを受け取るためのシンプルな API を提供します。警告コールバックを構成する手順は以下の通りです。

  1. 警告を処理するために、IWarningCallback インターフェイスを実装したカスタムコールバック クラスを作成します。
  2. RenderingOptionsPdfOptionsHtmlOptions などのオプション クラスを使用して警告コールバックを設定します。
  3. ターゲット マシンに存在しないフォントを使用しているプレゼンテーションをロードします。
  4. スライドのサムネイルを生成するか、プレゼンテーションをエクスポートして効果を確認します。

カスタム警告コールバック クラス:

class FontWarningHandler : IWarningCallback
{
    public ReturnAction Warning(IWarningInfo warning)
    {
        if (warning.WarningType == WarningType.DataLoss)
        {
            Console.WriteLine(warning.Description);
        }

        return ReturnAction.Continue;
    }
}

// 例の出力:
// 
// フォントは XYZ から {Calibri,Cambria Math,MS Gothic,Gulim,Arial Unicode,SimSun,Segoe UI Symbol}}

スライドのサムネイルを生成:

// スライドのレンダリング中にフォント関連の警告を処理するために警告コールバックを設定します。
var options = new RenderingOptions();
options.WarningCallback = new FontWarningHandler();

// 指定されたファイルパスからプレゼンテーションをロードします。
using var presentation = new Presentation("sample.pptx");

// プレゼンテーション内の各スライドのサムネイル画像を生成します。
foreach (var slide in presentation.Slides)
{
    // 指定されたレンダリングオプションを使用してスライドのサムネイル画像を取得します。
    using var image = slide.GetImage(options);
    // ...
}

PDF 形式にエクスポート:

// PDF エクスポート中のフォント関連警告を処理するために警告コールバックを設定します。
var options = new PdfOptions();
options.WarningCallback = new FontWarningHandler();

// 指定されたファイルパスからプレゼンテーションをロードします。
using var presentation = new Presentation("sample.pptx");

// プレゼンテーションを PDF としてエクスポートします。
using var stream = new MemoryStream();
presentation.Save(stream, SaveFormat.Pdf, options);
// ...

HTML 形式にエクスポート:

// HTML エクスポート中のフォント関連の警告を処理するために警告コールバックを設定します。
var options = new HtmlOptions();
options.WarningCallback = new FontWarningHandler();

// 指定されたファイルパスからプレゼンテーションをロードします。
using var presentation = new Presentation("sample.pptx");

// プレゼンテーションを HTML 形式でエクスポートします。
using var stream = new MemoryStream();
presentation.Save(stream, SaveFormat.Html, options);
// ...