:note

プラグインエラーのでるドキュメントのクリーニング

InDesignで、プラグインが使用された.inddドキュメントをプラグイン未インストールのマシンで開く場合、アラートがでてなにやら警告をされます。

そのまま無視してそのまま開いた場合、プラグインによっては保存しようとすると新規保存にダイアログが出て上書き保存が出来ない状態に陥るものがあるようです。

パッケージも出来なかったりすることもあります。

そういうドキュメントをキレイにするための、うまくいくかもしれない手段の一つが、INX書出し(CS4まで)をして再び開き名前を付け直して保存することです。

まとめてやるには面倒なその手順を簡略するためのスクリプト。

残念ながらCS5ではINXは廃止になったのでこの手段は使えません。

異常なinddドキュメントをフォルダにまとめておき、実行します

プラグインエラーのでるドキュメントのクリーニング /images/2010/10/cleaning_doc_01.png

アラートが出ます。無視して続行

プラグインエラーのでるドキュメントのクリーニング /images/2010/10/cleaning_doc_02.png

非表示でドキュメントを開き、INX書出し

元ドキュメントは念のためバックアップ、ドキュメントを開き直します。(お好みでそのまま閉じる)

非表示でドキュメントを開くのはアラートダイアログがでても、そのダイアログを消してあげれば処理が中断せずにスクリプトを継続させるためです。

プラグインエラーのでるドキュメントのクリーニング /images/2010/10/cleaning_doc_03.png

変換結果

backupフォルダに入った元の異常なドキュメントとINXファイルとキレイになったかもしれないinddドキュメント

プラグインエラーのでるドキュメントのクリーニング /images/2010/10/cleaning_doc_04.png
/**
 * export inx, import inx, create clean indd
 * to cleanup infected infomation
 *
 *  2010-10-08 mg
 */

//select folder (include infected indd document)
var src_folder = Folder.selectDialog("Select folder to clean up");
if (src_folder == null) {
  exit();
};
//folder path
inddFpath = src_folder.fsName;

//get indd filelist
var inddFlist = File(inddFpath).getFiles(
  function (file){ return /^[^\.]+\.indd$/i.test(file.name);}
  );
//open indd in hidden mode
for (var i=0, iL=inddFlist.length; i < iL ; i++) {
  docObj_src = app.open(inddFlist[i], false);
  //export inx
  var inxPath = inddFpath + "/" + docObj_src.name.replace(/\.indd$/,".inx");
  docObj_src.exportFile( ExportFormat.INDESIGN_INTERCHANGE, File(inxPath) );
  //backup original to backup folder
  Folder(inddFpath + "/backup/").create();
  docObj_src.save( File (inddFpath + "/backup/" + docObj_src.name.replace(/\.indd$/,"_backup.indd") ) );
  docObj_src.close(SaveOptions.NO);
};

//get inx filelist
var inxFlist = File(inddFpath).getFiles(
  function (file){ return /^[^\.]+\.inx$/i.test(file.name);}
  );
//open inx in hidden mode
for (var ii=0, iiL=inxFlist.length; ii < iiL ; ii++) {
  docObj = app.open(inxFlist[ii], false);

  var inddPath = inddFpath + "/" + inxFlist[ii].name.replace(/\.inx$/,".indd");
  docObj.save( File(inddPath) );
  if(docObj){
    alert("\"" + docObj.name + "\": " + "conversion has succeeded.")
  }
  app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALERTS;
  docObj.windows.add();
  app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;
  // docObj.close(SaveOptions.NO);
};
 
comments powered by Disqus
back to top