WSH環境にてJavaScriptでインデザインをコントロールできるか
管理者用
インデザインでは、VBSやJavaScriptが使用可能と言う事で、私もたまに使う事が有ります。
一般的には、.vbsファイルや.jsファイルをインデザインのスクリプトパネルから起動をかけます。
私の場合は、スクリプトパネルは、あまり使いません。
インデザインの外からエクセルVBAや、場面に合わせ、VBSを使用して実行します。
しかし、インデザインのスクリプト等のネット情報を見てますと、ほとんど JavaScriptでの内容です。
VBAやVBS関係からの話題は非常に少ないのです。
インデザイン スクリプトを使って行く上で、JavaScript技術は、必須の様に思います。
と言う事で、.vbsと同じように、.js ファイルで外からインデザインを使って見ようと試みました。
結果的には、直ぐに壁にぶつかってストップ!・・・
WSH環境においては、.vbsと同様に.js も動かせる情報は良く目にしてました。
良く出てくる定番の メッセージ表示のスクリプトを書いて実行してみました。
メモ帳などのテキストエディターで
WScript.Echo("Hello World!");
の1行を記述して、ファイル名を sample.js で保存します。
このファイルのアイコンをダブルクリックで実行します。
メッセージが表示されました、OKで終了します。
・・・・・もしかしたら、行けそう!
・・・・と言う事で
次に、インデザインの起動の記述を追加しました。
WScript.Echo("Hello World!");
myInDesign = WScript.CreateObject("InDesign.Application");
インデザインが開きました。
ドキメントを作成して見ました
WScript.Echo("Hello World!");
myInDesign = WScript.CreateObject("InDesign.Application");
var myDocument = myInDesign.documents.add();
テキストフレームを作って見ます
WScript.Echo("Hello World!");
myInDesign = WScript.CreateObject("InDesign.Application");
var myDocument = myInDesign.documents.add();
var myTextFrame = myDocument.textFrames.add();
拡大して見ると、用紙の左上にテキストフレームが作られているようです。
テキストフレームの位置・サイズを設定します。
WScript.Echo("Hello World!");
myInDesign = WScript.CreateObject("InDesign.Application");
var myDocument = myInDesign.documents.add();
var myTextFrame = myDocument.textFrames.add();
myTextFrame.visibleBounds =["10mm","10mm","80mm","120mm"];
ここでエラーの発生!
記述に問題が有りそうです。
本来ならテキストフレームサイズは、このような位置に移動しているはずですが
スクリプトにエラーが有るようです。
ここから試行錯誤・・・・・・
結果的に断念しました。
配列の扱い方の問題とは思うのですが、少し時間がかかりそうです。
どなたか、解決策をご存知のかた、いらっしゃいませんか。
ここがクリアできれば、先に進めるのですがねー。
テキストフレームサイズの変更の記述前に、フォントを変更したり、文字を流し込んだりしましたが
これらの動作は実行出来ているようです。
WScript.Echo("Hello World!");
myInDesign = WScript.CreateObject("InDesign.Application");
var myDocument = myInDesign.documents.add();
myDocument.documentPreferences.pageWidth = "14cm";
myDocument.documentPreferences.pageHeight = "10cm";
var myTextFrame = myDocument.textFrames.add();
font_mei = "NSK白洲賞状書体W0";
font_W = "Regular";
myTextFrame.parentStory.appliedFont = font_mei;
myTextFrame.parentStory.fontStyle = font_W;
myTextFrame.contents = "宮本武蔵";
myTextFrame.parentStory.pointSize = 24;
myTextFrame.parentStory.storyPreferences.storyOrientation = 1986359924; //縦書き
myTextFrame.visibleBounds =["10mm","10mm","80mm","120mm"];
エラーのテキストフレームを、手作業で広げてみました。
設定した通り、縦書きになっています。
今日は、出来ない事の報告ですが、時間が取れたらもう少し調べて見ます。