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
1 Comment
記事投稿日
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
« 9月 | ||||||
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
肝心なことを記入漏れしてることに気づきました〜。
Preferences > Adobe InDesign > Version X.0-J > Scripts にStartup Scriptsフォルダを作り、
その中にtargetengin.jsx の名称で下記ファイルを入れてください。
#target indesign
#targetengine “session”
//Because these terms are defined in the “session” engine,
//they will be available to any other JavaScript running
//in that instance of the engine.
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);
}
}