InDesigh JavaScriptのプログレスバーをAppleScriptで呼び出す
InDesignのSDKに、ScriptUIの箇所で、プログレスバーのJavaScriptサンプルがあります。これをAppleScriptでルーチン化してみました。下記の参考スクリプトは新規ドキュメントを作り、100ページ新規追加していきます。
こちらのサンプルムービーで、処理状況をご覧いただけます。
参考スクリプト
tell application “Adobe InDesign CS4″
activate
my doProgressBar() –スクリプトバー初期化
–ドキュメント作成
set myDocument to make document
my doProgressBarOpen(100) –スクリプトバーOpen
repeat with myCounter from 1 to 100
my doProgressBarRoop(myCounter) –スクリプトバーRoop
–ページ追加
tell myDocument to make page
end repeat
my doProgressBarClose() –スクリプトバーClose
delay 1
–保存しないで閉じる
close myDocument saving no
end tell
on doProgressBar()
set myJavaScript to ”
#targetengine \”session\”;
var myMaximumValue = 300;
var myProgressBarWidth = 300;
var myIncrement = myMaximumValue/myProgressBarWidth;
myCreateProgressPanel(myMaximumValue, myProgressBarWidth);
function myCreateProgressPanel(myMaximumValue, myProgressBarWidth){
myProgressPanel = new Window(‘window’, ‘myProgressBar’);
with(myProgressPanel){
myProgressPanel.myProgressBar = add(‘progressbar’, [12, 12,myProgressBarWidth, 24], 0, myMaximumValue);
}
}”
my doJavaScript(myJavaScript)
end doProgressBar
on doProgressBarOpen(maxValue)
set myJavaScript to ”
#targetengine \”session\”;
myCreateProgressPanel(” & maxValue & “, 300);
myProgressPanel.show();”
my doJavaScript(myJavaScript)
end doProgressBarOpen
on doProgressBarRoop(myCounter)
set myJavaScript to ”
#targetengine \”session\”;
myProgressPanel.myProgressBar.value = ” & myCounter & “/myIncrement;”
my doJavaScript(myJavaScript)
end doProgressBarRoop
on doProgressBarClose()
set myJavaScript to ”
#targetengine \”session\”;
myProgressPanel.myProgressBar.value = 0;
myProgressPanel.hide();”
my doJavaScript(myJavaScript)
end doProgressBarClose
on doJavaScript(theScript)
tell application “Adobe InDesign CS4″
do script theScript language javascript
end tell
end doJavaScript