:note

裏でコリコリ処理させる

InDesignのスクリプト処理で、オブジェクトの選択部分(.selection)に依存しない処理をする場合、非表示にしての裏方処理は画面描画ない分やっぱり、多少速いのかな?(処理にもよるだろう)

//実行すると裏処理と表処理をして、
//ドキュメントをデスクトップに保存、
//所要時間の結果をダイアログに表示します。
var sh=new Date().getTime();
main(false); //ドキュメントを非表示にして処理
var eh=new Date().getTime();
var ss=new Date().getTime();
main(true); //ドキュメントを表示して処理
var es=new Date().getTime();
alert("result\r"+"show document: "+(es-ss)+"\r"+"hide document: "+(eh-sh));

function main(flag){
  var doc=app.documents.add(flag);
  //ほにゃららな処理
  with(doc.documentPreferences){
    facingPages=false;
    overPrintBlack=true;
    pageBinding=PageBindingOptions.LEFT_TO_RIGHT;
    pageHeight=400;
    pageWidth=600;
    pageOrientation=PageOrientation.LANDSCAPE;
    pagePerDocument=1;
    masterTextFrame=true;
  }
  var rec=doc.rectangles.add({geometricBounds:[0,0,5,5]});
  var col=["Cyan","Magenta","Yellow","Black"];
  for(var i=0; i < 1000; i++){
    var duprec=rec.duplicate(undefined, [
      doc.documentPreferences.pageWidth*Math.random(),
      doc.documentPreferences.pageHeight*Math.random()
      ]);
    duprec.fillColor=col[i%4];
  }
  var docname=""+new Date().getTime()+".indd";
  var fileObj=new File("~/desktop/"+docname);
  doc.close(SaveOptions.YES, fileObj);
}

結果はこんな、G5+CS3の遅さに泣ける。IntelMacなら一桁多めな重めな処理でわかりやすい結果がでそう。

裏でコリコリ処理させる /images/2010/09/723-hidden_vs_shown_doc.png

保存して閉じるのでなく、最後に非表示のドキュメントを開くには

doc.windows.add();

みたいな感じで。

 
comments powered by Disqus
back to top