:note

開けるドキュメントは140コまで

InDesignでメモリーの制約以外でドキュメントは何個開くことができるのだろうとふと思って、試してみました。

for(var i = 0; i < 150; i++){
  try {
    app.documents.add(false);
  }
  catch(e){
    alert("もうおなかいっぱい\n created " + app.documents.length + " docs\n" + e);
    exit();
  };
};
開けるドキュメントは140コまで /images/2010/10/newdoc_140.png

新規ドキュメント(未保存)は140コまで出来ました。

裏に隠れてるドキュメントが開きっぱなしなのでまとめて閉じます。

alert(app.documents.length);
app.documents.everyItem().close(SaveOptions.NO);

通常はこのような大量オープンってことをせずに随時開いて、処理して保存して閉じていったりするかと思います。

ではBookにはどのくらいのドキュメントを読み込めるのか、ついでに試してみました。 とりあえず140個のドキュメントを作って、順番に読み込み。途中でエラーが出たらそこで止まる。のがあっさりスルーしたので2000個にして実行。

var bookObj;
if(app.books.length === 0){
  var bookFolder = Folder("~/Desktop/indb_test/").create();
  var bookPath = File("~/Desktop/indb_test/test140.indb");
  bookObj = app.books.add(bookPath);  
}
else{
  bookObj = app.books[0];
}

bookObj.automaticPagination = false;

var folderPath = bookObj.filePath;
for (var i=0; i < 2000; i++) {
  var doc = app.documents.add(false);
  doc.save( new File(folderPath + "/" + new Date().getTime() + ".indd" ) );
  doc.close(SaveOptions.NO);
  $.sleep(1);
};

var inddList = File(folderPath).getFiles(
  function(file){
    return /^[^\.]+\.indd/i.test(file.name)
  });
for (var j = inddList.length - 1; j >= 0; j--){
  try{
    bookObj.bookContents.add(inddList[j], -1);
    $.writeln(bookObj.bookContents.length);  
    }
  catch(e){
    alert(e + "\n" + bookObj.bookContents.length + " docs are imported");
    exit();
    }
};

結果、2000まではエラーも出ないで読み込み完了。

多分Bookのコンテンツの参照情報しか持たないからいくらでも登録自体は出来るのでしょう。

結構時間がかかったので bookObj.automaticPagination = false; としてページとセクション番号の更新をOFFにしておけばよかったかも。

開けるドキュメントは140コまで /images/2010/10/book2000.png

試しにBook上のinddを全部開こうと試みると139個までしかドキュメントを開くことができませんでした。

先ほどのエラーメッセージから推測すると

  • ドキュメント(.indd)
  • ブック(.indb)
  • ライブラリ(.indl)

の合計で140個までしか同時に開けない仕様なようです。

しかもInDesignが強制終了しちゃいました。

開けるドキュメントは140コまで /images/2010/10/indx_till140.png

2000個の.inddと1個の.indbと.139個のidlk(ロックファイル=開けたドキュメント数といっしょ)

 
comments powered by Disqus
back to top