TOP > blog > WSH環境にてJavaScriptでインデザインをコントロールできるか
インデザイン
2018/03/23

WSH環境にてJavaScriptでインデザインをコントロールできるか

管理者用
blog

インデザインでは、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"];

エラーのテキストフレームを、手作業で広げてみました。
設定した通り、縦書きになっています。

 今日は、出来ない事の報告ですが、時間が取れたらもう少し調べて見ます。

 

関連記事