コモノExtendScript100本ノック

超初心者のDTPオペレーターが週にひとつスクリプトを書くブログ

008.【ID】配置した画像の読み込みオプションを変更

書いたコード

var i = 0;
var doc = app.activeDocument;
var tgt = app.activeDocument.selection[0];
if (doc.selection.length !== 1) {
  alert("対象を1つ選択してください")
} else {
  try {
    var linkPath = tgt.itemLink.filePath;
    var linkParent = tgt.parent;
    // linkのstatusで分岐
    if (tgt.itemLink.status == LinkStatus.LINK_MISSING || tgt.itemLink.status == LINK_INACCESSIBLE) {
      alert("リンク画像が見つかりません")
    } else {
      tgt.remove();
      linkParent.place(linkPath, true)
    }
  } catch (e) { // リンクじゃなかったら
    alert("リンクを選択してください")
  }
}

メモ

積み残し

  • Linksのメソッドrelink()(再リンク)の引数に読み込みオプション表示/非表示があればよかったのだけどなさそう?インデの機能としてはあるのでJSでできないことはないと思うのだが…
  • 選択対象がリンクかどうかの判別を「try...catch」でやってしまったが、予想しないエラーが起きることを考えたら違うやり方にした方が良さそう。 「対象が●●というプロパティ/メソッドを持っているか」という判定の適切なやり方を調べる。

参考