无法访问字符或段落的kerningValue属性

时间:2015-07-28 13:06:01

标签: javascript adobe-indesign indesign-server

我正在尝试使用IDS的SOAP API确定TextFrame中字符的字距。为了简单起见,我目前仍在尝试仅检查第一个字符,它不是任何特殊字符(它是一个大写字母T)。我正在使用这个脚本来检查它:

var get_all_textframes = function(document, callback) {

      var looper = function(collection) {
        for(var i = 0; i < collection.textFrames.count(); i++) {
          var textframe = collection.textFrames.item(i);
          callback(textframe);
        }
      };

      var recurse = function(group) {
        for(var i = 0; i < group.groups.length; ++i) {
          looper(group.groups[i]);
          recurse(group.groups[i]);
        }
      };

      looper(document);
      recurse(document);
};

var document = app.open(File("c:\\path\\to\\idsdoc.indd"));

var output = "\n";
get_all_textframes(document, function(textframe) {
  if(textframe.id == 357) {
    output += ("Kerning: " + textframe.parentStory.characters[0].kerningValue+ " \n");
  }
});
document.close();

result.output = output;

但是,当我运行脚本时,我收到错误30615: The property is not applicable in the current state

如果我尝试从角色获取任何其他属性,而不是kerningValue,它可以正常工作。例如,kerningMethod会返回Metrics

什么情况导致此属性不可用,我该如何阅读?

1 个答案:

答案 0 :(得分:1)

只有在kerningMethod设置为“None”时才能访问kerningValue。此属性是一个字符串,可能因您的当地语言而异。您可以手动将字距设置为“O”=&gt;没有,并要求kerningMethod确保正确的名称。