我正在制作一个 ExtendScript 脚本,它遍历 InDesign 文档中使用的所有字体并提醒它们的名称。这是代码
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
。
令我惊讶的是,如果我手动将光标放在使用有问题字体之一的文本中,它的名称会显示为正常的字体选择器或其他名称。
为什么我无法访问name
某些由返回给我的字体的属性app.activeDocument.fonts
?
笔记:
以下是一些有问题的字体:
- Electra LH,斜体
- Electra LH、Bold Small Caps 和 Oldstyle Figures
- Electra LH,老式人偶
- Ocean Sans MT, Light OsF
这些字体可以正常工作:
- Ocean Sans MT,浅斜体 OsF
- Ocean Sans MT, Semibold SC
- Ocean Sans MT,Light SC
- Ocean Sans MT,光
- Electra LH, Small Caps & Oldstyle Figures
- Electra LH,草书
- Electra LH,大胆的老式人物