javascriptでスニペット書き出し

[1324]javascriptでスニペット書き出し | 投稿者:amiza_ret | 投稿日:2008/06/16(Mon) 18:38:37
いつもお世話になっています。
環境=WinXP, InDesignCS2

javascriptで、InDesignスニペットでの書き出しが分かりません。
オブジェクトを全選択して、下記を動作させてますが、
「指定したオブジェクトは、目的の書き出し形式をサポートしていません。」
とメッセージが出ます。

app.activeDocument.exportFile(ExportFormat = 1936617588,  "c:/a");
もしくは、
app.activeDocument.exportFile(ExportFormat.indesignSnippet, "c:/a");

どなたかお分かりになる方がいましたら、お教え下さい。
よろしくお願いいたします。
» 1
[1325]Re: javascriptでスニペット書き出し | 投稿者:せうぞー | 投稿日:2008/06/16(Mon) 22:09:03
var my_file = File.saveDialog("保存先を指定してください。拡張子は.indsです。");
app.activeDocument.selection[0].exportFile(1936617588, my_file);

これで選択しているページオブジェクトが保存されませんか?
» 2
[1326]Re: javascriptでスニペット書き出し | 投稿者:せうぞー | 投稿日:2008/06/16(Mon) 22:22:03
いちいちダイアログがいやならこんな感じでもいいかもしれません。

var my_file = new File("~/Desktop/test/aaaaa.inds", "write");
app.activeDocument.selection[0].exportFile(1936617588, my_file);
» 3
[1327]Re: javascriptでスニペット書き出し | 投稿者:amiza_ret | 投稿日:2008/06/17(Tue) 10:53:55
せうぞーさん、ありがとうございます。
無事に動作するようになりました。
が、今度は全選択したオブジェクトの書き出し方法が分かりません…。

不可解なのは、下記のjavascriptで書き出しし、スニペットを配置しようとした時のプレビューは全オブジェクトが見えているのですが、実際に配置すると、一番最初のオブジェクトしか配置されません。
(selection[0]なので、当然といえば当然ですが…)

var objItems = app.activeDocument.allPageItems;
var objsel = app.activeDocument.select( objItems );

var my_file = new File("D:/1234.inds", "write");
app.activeDocument.selection[0].exportFile(1936617588, my_file);

再度、お教え願えるとありがたいです。
それではよろしくお願いいたします。
» 4
[1328]Re: javascriptでスニペット書き出し | 投稿者:せうぞー | 投稿日:2008/06/17(Tue) 11:40:31
結論を先に言うと、それは多分できません。
なぜならPageItemsにはexportFileメソッドがないから。なんか抜け道とかありそうな気もしますけど、ちょっと時間がありません。すいません。
アイテムをひとつづつやるとか。

ちょこちょこ誤解があるかな。
そもそも
var objItems = app.activeDocument.allPageItems;
var objsel = app.activeDocument.select( objItems );
は複数ページでエラーになりますね。
もしやるなら、ページを指定しないといけません。

あと、exportFileメソッドを受けるのはpageItemオブジェクトです。selectionである必要はありません。
» 5
[1329]Re: javascriptでスニペット書き出し | 投稿者:amiza_ret | 投稿日:2008/06/17(Tue) 13:37:19
早速の回答ありがとうございました。

> var objItems = app.activeDocument.allPageItems;
> var objsel = app.activeDocument.select( objItems );
> は複数ページでエラーになりますね。

すみません。今回の仕事は単ページの処理でしたので…。

> あと、exportFileメソッドを受けるのはpageItemオブジェクトです。selectionである必要はありません。

なるほど! ヒント、ありがとうございます。
とりあえず、グループ化にて「抜け道」とする事にしました。

//Get allPageItems
var objItems = app.activeDocument.allPageItems;
//Set groups
app.activeDocument.groups.add(objItems);
//Get groupItem
var objGItems = app.activeDocument.allPageItems;
//Make File
var my_file = new File("D:/123456.inds", "write");
//Export
objGItems[0].exportFile(1936617588, my_file);

本当にありがとうございました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)