InDesignのスクリプトで、ドキュメントのオブジェクトをライブラリファイルに登録・保存する方法の紹介です。
ライブラリに登録したアイテムは、アイテムの名称以外にも情報を持っています。
スクリプトで、その情報にアクセスするときに使うプロパティも紹介します。
目次
ドキュメントサンプル
次のようなドキュメント上の図形を選択した状態で、スクリプトを実行します。
選択された図形が、新規作成されたライブラリーファイルに登録されます。

コードサンプル
#target indesign
// ライブラリを作成
var objLibrary = app.libraries.add ("C:/Users/〜〜〜/ライブラリ登録test.indl");
// 選択しているアイテムをライブラリに登録
var objAsset = objLibrary.store(app.selection);
// 登録したアイテムの情報を入力
objAsset.name = "みどりの丸";
objAsset.description = "スクリプちん";
objAsset.label = "riptin";
// アイテムの情報をアラート表示
alert(
"ライブラリ内のアイテム数: " + objLibrary.assets.length + "\n\n" +
"名前: " + objAsset.name + "\n" +
"詳細: " + objAsset.description + "\n" +
"スクリプトラベル: " + objAsset.label + "\n\n" +
"タイプ: " + objAsset.assetType + "\n" +
"登録日付: " + objAsset.date + "\n" +
"id: " + objAsset.id + "\n" +
"index: " + objAsset.index
, "アセットのプロパティ");
実行結果


サンプルコードの解説
コードの4行目で、ライブラリーファイル新規作成し、取得しています。
var objLibrary = app.libraries.add ("C:/Users/〜〜〜/ライブラリ登録test.indl");
このライブラリにstoreでアイテム登録します。
引数に、選択項目が指定してあります。
var objAsset = objLibrary.store(app.selection);
9〜11行目で、登録アイテムのプロパティを使って、情報を入れています。
.labelは、スクリプトラベルです。
objAsset.name = "みどりの丸";
objAsset.description = "スクリプちん";
objAsset.label = "riptin";
ライブラリー内の一連のアイテムには、配列としてアクセスできます。
15行目では、assets配列の .lengthプロパティでアイテム数を取得しています。
・・・
"ライブラリ内のアイテム数: " + objLibrary.assets.length + "\n\n" +
・・・
14行目からは、他のプロパティも使って、アイテム情報のアラート表示です。
これらの情報のうち、「アイテム名」「形式」「作成日」「詳細」は、ライブラリーのパネルメニューから確認できます。


ライブラリパネルのメニューでは、登録したオブジェクトは「アイテム」と表現していますが、スクリプトでは「asset」(配列は「assets」)というオブジェクト名で扱います。