:note

綴じ方向が逆なのです

今回は普通に制作していたら、まず必要のないスクリプト。

某外注先から戻ってきた約百ページ分のinddデータが全部「綴じ方向が逆」。

他にも諸々〜とりあえず綴じ方向+αだけを直すスクリプト。

こんな惨状および現状

  • 幸か不幸か全くマスターページを活用していない → 使えってば
  • ほとんど見開き2ページのドキュメント
  • ファイル名あたま3文字は偶数始まりのページ番号になっている
  • リンク切れ・使用フォントに問題有り → パッケージしろ

これを

  • スプレッド上のアイテムを全部取得して、カットする
  • 綴じ方向を左綴じに直し、開始セクションのページ番号を設定
  • 最初のスプレッドを選択して、元の位置にペーストする
  • 別名で保存。

スクリプトを実行して、フォルダ内を拡張子検索で必要なinddを選ぶ。(winもできるのかな?)

綴じ方向が逆なのです /images/2010/09/658-rebinding_dialog.jpg

だいたい、本来CS3進行のところをCS4で勝手に制作しておいて、リンク切れ、フォントにdfont、画像も…(以下省略)。

なんのためのライブプリフライト機能? 重いワクチンソフトのように切っているのだろうか?

/**
綴じ方向を左綴じにする
"reBind Left to Right"
使い方:
実行して該当する見開きinddドキュメントを選択、複数選択も可能。
ファイル名を参照して開始セクションのページ番号を設定。
綴じ方向を左綴じになおして別名で保存。
見開き2ページドキュメント専用。
マスターページアイテムはいじりません。
動作確認:OS10.4.11 InDesign CS3
milligramme
www.milligramme.cc
*/
//フォント・リンクのエラーダイアログが出ないようにする
app.scriptPreferences.userInteractionLevel=UserInteractionLevels.NEVER_INTERACT;
var inddFile=File.openDialog ("複数選択可能", "*.indd", true);
if(inddFile == null){
  exit();
  app.scriptPreferences.userInteractionLevel=UserInteractionLevels.INTERACT_WITH_ALL;
}
else{
  //inddをひとつずつ開く
  for(var i=inddFile.length-1; i >=0;  i--){
    app.open(inddFile[i]);
    //別名保存用ののパス
    var inddSaveAsPath=inddFile[i].fsName.replace(/\.indd$/,"_.indd");
    var doc=app.activeDocument;
    var spreadObj=doc.spreads;
    var allPageObj=spreadObj[0].pageItems;
    //全選択して
    for(var pg=0; pg < allPageObj.length; pg++){
      allPageObj[pg].select (SelectionOptions.ADD_TO);
    }
    app.cut();
    //左綴じにする
    doc.documentPreferences.pageBinding=PageBindingOptions.LEFT_TO_RIGHT;
    var sectObj=doc.sections;
    sectObj[0].continueNumbering=false;
    //開始セクションページをファイル名の左3文字にする
    var docNameLeft3=eval(doc.name.substr(doc.name.lenght-3, 3));
    sectObj[0].pageNumberStart=docNameLeft3;
    spreadObj[0].allowPageShuffle=true;
    app.layoutWindows[0].activeSpread=spreadObj[0];
    //元の位置にペースト
    app.pasteInPlace();
    doc.close (SaveOptions.NO, new File(inddSaveAsPath));
  }
}
//ダイアログ復活のおまじない
app.scriptPreferences.userInteractionLevel=UserInteractionLevels.INTERACT_WITH_ALL;
alert("completed");
 
comments powered by Disqus
back to top