Archive for the 'InDesign CS2' Category

2009/05/20 指定の名前の色をInDesignのSwatch上で探してIDを返す

InDesign CS2で、指定の名前のスウォッチのIDを取得するAppleScriptです。

idcs2_10.jpg

▲スウォッチ

スクリプト名:指定の名前の色をInDesignのSwatch上で探してIDを返す
set cList to {"【コマ】", "【読み取りエリア】"}
set idList to {}

repeat with i in cList
  set idRes to retColorIDfromColorName(i as Unicode text) of me
  
if idRes = false then
    display dialog "指定の色はスウォッチ上に存在していません"
    
return
  end if
  
set the end of idList to idRes
end repeat
idList

指定の名前の色をInDesignのSwatch上で探してIDを返す
on retColorIDfromColorName(aName)
  tell application "Adobe InDesign CS2_J"
    tell document 1
      –スウォッチアイテムの名前と色を取得
      
set sCount to count every swatch
      
repeat with i from 1 to sCount
        tell swatch i
          set cName to name as Unicode text
          
set cColID to object reference
          –
set aP to properties
          –
log aP
          
if aName = cName then
            return cColID
          end if
        end tell
      end repeat
    end tell
  end tell
  –
指定の名前の色が見つからなかった場合
  
return false
end retColorIDfromColorName

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2009/05/20 InDesign CS2の座標原点を左上に変更する

InDesign CS2で、スプレッド上の座標原点(zero point)を左上(左側ページの左上)に設定するAppleScriptです。

InDesign上で座標値を扱う場合には、{Y座標, X座標} という順でデータを扱うことになります。ここで{0,0}を指定していますが、この値のペアが {y,x}の順番であることに注意してください。

text frame(文字ボックス)の大きさ(geometric bounds)を取得すると、{y1, x1, y2, x2} という順番で値が返ってきます。

わざわざ、using terms fromでtellブロックを囲っているのは……いろいろと嫌な目に遭ったことへの対策でしょうか。Xcodeのプロジェクト(AppleScript Studio)に入れやすくするために入れているという説もありますが……はたして。

InDesign CS2はMac OS X 10.5上では正常に動作しないため、Mac OS X 10.4.xが対象です。

idcs2_0.jpg

▲見開き(spread)の左上に原点座標を設定する……

idcs2_1.jpg

▲InDesign CS2上で原点座標がてきとーな箇所に設定されている状態

idcs2_2.jpg

▲Script実行後の状態。原点(0,0)が左上に設定されていることがわかる

スクリプト名:InDesign CS2の座標原点を左上に変更する
changeOriginOfInDesign() of me

InDesign CS2の座標原点を左上に変更する
on changeOriginOfInDesign()
  using terms from applicationAdobe InDesign CS2_J
    tell applicationAdobe InDesign CS2_J
      tell document 1
        set zero point to {0, 0} –原点の移動
      end tell
    end tell
  end using terms from
end changeOriginOfInDesign

▼新規書類にペースト  ▼カーソル位置にペースト  ▼ドキュメント末尾にペースト