InDesign ドキュメントで使用されているすべてのフォントを調べて、その名前を警告する ExtendScript スクリプトを作成しています。ここにコードがあります
var usedFonts = app.activeDocument.fonts;
var nbUsedFonts = usedFonts.length;
var i;
for (i = 0; i < nbUsedFonts; ++i) {
alert(usedFonts.item(i).name);
}
ただし、特定のフォントでは、name
プロパティにアクセスするとスクリプトがクラッシュします (オブジェクトが無効です)。クラッシュせずにすべてのフォントにアクセスできる唯一の属性は属性です。これにより、プロパティisValid
にアクセスできなかったフォントはすべて であり、アクセスしても問題が発生しなかったすべてのフォントは であることがわかりました。name
isValid === false
name
isValid === true
驚いたことに、問題のあるフォントの 1 つが使用されているテキストに手動でカーソルを置くと、その名前が通常のフォント チューザーまたはそれと呼ばれるものに表示されます。
name
によって返された一部のフォントのプロパティにアクセスできないのはなぜapp.activeDocument.fonts
ですか?
ノート:
問題のあるフォントの一部を次に示します。
- エレクトラ LH、イタリック体
- エレクトラ LH、ボールド スモール キャップス、オールドスタイル フィギュア
- エレクトラ LH、オールドスタイル フィギュア
- Ocean Sans MT、Light OsF
これらのフォントは問題なく動作します:
- Ocean Sans MT、Light Italic OsF
- Ocean Sans MT、Semibold SC
- Ocean Sans MT、Light SC
- Ocean Sans MT、ライト
- エレクトラ LH、スモール キャップス、オールドスタイル フィギュア
- エレクトラ LH、筆記体
- エレクトラ LH、大胆なオールドスタイル フィギュア