为什么可以';my ExtendScript是否访问“app.activeDocument.fonts”返回给我的某些字体的“name”属性?

为什么可以';my ExtendScript是否访问“app.activeDocument.fonts”返回给我的某些字体的“name”属性?,fonts,adobe,extendscript,adobe-indesign,Fonts,Adobe,Extendscript,Adobe Indesign,我正在制作一个ExtendScript脚本,它将遍历InDesign文档中使用的所有字体,并提醒它们的名称。这是密码 var usedFonts = app.activeDocument.fonts; var nbUsedFonts = usedFonts.length; var i; for (i = 0; i < nbUsedFonts; ++i) { alert(usedFonts.item(i).name); } var usedFonts=app.activeDocumen

我正在制作一个ExtendScript脚本,它将遍历InDesign文档中使用的所有字体,并提醒它们的名称。这是密码

var usedFonts = app.activeDocument.fonts;
var nbUsedFonts = usedFonts.length;
var i;
for (i = 0; i < nbUsedFonts; ++i) {
  alert(usedFonts.item(i).name);
}
var usedFonts=app.activeDocument.font;
var nbUsedFonts=usedFonts.length;
var i;
对于(i=0;i
但是,对于某些字体,当我访问它们的
name
属性时,脚本崩溃(对象无效)。对于所有字体,我可以访问的唯一属性是
isValid
属性,该属性允许我确定无法访问
name
属性的字体都具有
isValid==false
,而所有使用
name
不会导致问题的字体都有
isValid===true

让我惊讶的是,如果我手动将光标放在使用某个有问题的字体的文本中,它的名称会出现在普通字体选择器中,或者不管它叫什么

为什么我不能访问
app.activeDocument.font
返回给我的一些字体的
name
属性

注意:

以下是一些有问题的字体:

  • Electra LH,斜体
  • Electra LH,粗体小帽和老式人物
  • Electra LH,老式人物
  • 海洋无山,轻OsF
这些字体工作正常:

  • 海洋无MT,浅斜体OsF
  • 海洋圣山酒店
  • 海洋圣山,轻SC
  • 海洋无山,光明
  • Electra LH、小帽和老式人物
  • 伊莱克特拉LH,草书
  • Electra LH,大胆的老式人物

问题可能来自字体丢失,您可以尝试先检查这些字体,看看是否解决了问题:

var usedFonts = document.fonts;
for(var i = 0; i < usedFonts.length; i++){

    if(usedFonts[i].status != FontStatus.INSTALLED){
        //You can't rely on font.name if the font is missing
        var fontName = usedFonts[i].fontFamily+" "+usedFonts[i].fontStyleName;
    }else{
        var fontName = usedFonts[i].name;
    }
}
var usedFonts=document.font;
对于(变量i=0;i
谢谢,我最后只为每种字体使用了
fontFamily
fontStyleName