フォント置換のルールとデフォルトフォントの設定がうまくできない

Arial を Noto Sans に、 Times New Roman を Noto Serif に、 Calibri を Carlito に変換することはできているように見えます
それぞれ “Arial”, “Times New Roman”, “Calibri” という文字列が当該フォントに変換されていると思います
特にこれらはアルファベットのみなので、期待通りの動作です

一方、 “游ゴシック”, “MS ゴシック”, “MS Pゴシック”, “メイリオ” という文字列は IPA Gothic に、 “游明朝”, “MS 明朝”, MS P明朝" という文字列は IPA P Mincho に変換されてほしいのです
IPA Gothic と IPA P Mincho はそれぞれ感じ、ひらがな、カタカナをサポートしており、それぞれのフォントに置換されることを期待しています

しかしながら、添付した画像の部分については、すべてが IPA Gothic に変換されてしまっているように見えます
“游明朝”, “MS 明朝”, MS P明朝" という文字列は IPA P Mincho に変換されてほしいところでしたが、期待結果が得られませんでした

また、その他の部分に含まれる日本語(例えば “に置換” など)が、 IPA Gothic になることは期待通りです

Noto Sans, Noto Serif, Carlito が日本語をサポートしてないことは問題ありません
また、 Noto Sans JP, Noto Serif JP は利用しない方針です

よろしくお願いします
image.png (7.5 KB)

@rmffr,
私はインターネットから、あなたが使用しているすべてのフォントをダウンロードし、上記で提供いただいた(修正済みの)サンプルコードを実行しました。
問題の理解を深めるために、このサンプルのPowerPointプレゼンテーション(sample.zip)を使用しました。
フォントの置き換えは期待通りに正しく行われました(compare.png)。
このプレゼンテーションを使用して、あなたの結果を再度ご確認ください。もし問題が続く場合は、フォントへのパス指定が正しいかをお確かめください。

いただいたサンプルの PowerPoint ファイルでは同じ期待結果が得られました
そのためパス指定には誤りはなさそうです

こちらから共有させていただいたファイルについて、 “游明朝”, “MS 明朝”, MS P明朝" という文字列は変わらず IPA P Mincho に変換されません
お渡ししたファイルでも動作を確認していただけると助かります
また、ファイルによって変換結果が変わる可能性はありますでしょうか?

よろしくお願いします

@rmffr,
現時点では、何が問題なのか理解できていません。上でお示ししたスクリーンショットでは、Yu Gothic、MS Gothic、MS PGothic、MeiryoのフォントがIPAGothicに、Yu Mincho、MS Mincho、MS PMinchoのフォントがIPAPMinchoに、ArialフォントがNoto Sansに、Times New RomanフォントがNoto Serifに、CalibriフォントがCarlitoに置き換わっていることが確認できます。どの点が問題でしょうか?スクリーンショットをご提供のうえ、問題箇所を示していただけますか? 私の誤解についてお詫びいたします。

添付しました画像の赤枠で囲った部分が IPA P Mincho に変換されて欲しい部分になります
コメント 2024-12-19 140818.png (36.9 KB)

また、変換元と変換後のファイルを共有します
files.zip (48.9 KB)

@rmffr,
詳細な説明をありがとうございます。ご指摘のフォント置換問題を再現いたしました。ご不便をおかけして申し訳ございません。

内部の問題追跡システムに以下の新しいチケットを作成しました。修正はFree Support Policiesに記載された条件に従って提供いたします。
Issue ID(s): SLIDESPYNET-243

優先的なサポートが必要な場合は、Paid Support Servicesをご利用いただけます。また、有料サポート管理チームへの直接アクセスも含まれています。

@rmffr,
開発者がこの件を調査した結果、プレゼンテーションファイル内でのフォント名の表現方法が原因で、フォントの置換が失敗していることがわかりました。プレゼンテーション内では、ファイルに保存されている通りフォント名が日本語で記載されており、次のようになっています。

  • 「游明朝」は「Yu Mincho」
  • 「MS 明朝」は「MS Mincho」
  • 「MS P明朝」は「MS PMincho」

これらのローカライズされたフォント名は、フォント置換ルールで使用しているラテン文字表記の名前と一致しないため、Aspose.Slides はフォント名が正確に一致しない限り置換を適用できません。

さらに、元のフォント(游明朝やMS明朝など)がシステムにインストールされていない場合、Aspose.Slides はその内部構造、言語、エンコードを検出できません。その結果、指定されているラテン文字表記の名前に自動的にマッピングすることができません。

この問題を解決するには、プレゼンテーション内に記載されている正確な日本語のフォント名を使用するように置換ルールを更新してください。

    {
        "source_font_name": "游明朝",
        "dest_font_name": "IPAPMincho",
        "dest_font_path": "fonts/ipamp.ttf",
    },
    {
        "source_font_name": "MS 明朝",
        "dest_font_name": "IPAPMincho",
        "dest_font_path": "fonts/ipamp.ttf",
    },
    {
        "source_font_name": "MS P明朝",
        "dest_font_name": "IPAPMincho",
        "dest_font_path": "fonts/ipamp.ttf",
    },

プレゼンテーション内でシステム上に存在せず、置換されたフォントをプログラム上で検出するには、FontsManager.get_substitutions() メソッドを使用できます。

for font_substitution in pres.fonts_manager.get_substitutions():
    print(font_substitution.original_font_name, "->", font_substitution.substituted_font_name)

これにより、意図した置換が適用されているか、あるいは (例: IPAGothic のような) フォールバックフォントが使用されているかを確認できます。