InDesign スクリプト ブックのInddファイルのリンクをブックと同じフォルダーのファイルに更新する(改善)

ブックファイルに登録したinddファイルを、ブックファイルと同じフォルダーのファイルに更新するスクリプトを先日作成しましたが、難点はスピードが遅いことでした。

その原因がわかりましたので、ソースを更新します。

「ページとセクションの番号を自動更新する」がデフォルトで有効になっているので、inddファイルを1ファイル更新するごとに自動更新されていました。

 

最初に「ページとセクションの番号を自動更新する」を無効にし、ファイルの更新が完了した後に有効に戻すようにしています。

appBook.automaticPagination=false;

 

スピードはかなり早くなっていると思います。これなら我慢できるかな。

 

function modifyBook(){
    var appBook=app.books.item(0);
    var bookPath=appBook.filePath;
    bookPath = decodeURI(bookPath); //  URLデコード
    var fileList = new Array();
    var fileListNew = new Array();
    var inddFileitem;
	var i = 0;

	appBook.automaticPagination=false;

	var inddFileLen=appBook.bookContents.length;
	var inddFile=appBook.bookContents;

	for (i=0;i<inddFileLen;i++){
		inddFileitem=inddFile.item(i);
		fileList[i]=appBook.bookContents.item(i).fullName.name;
		fileListNew[i]=bookPath+"/"+fileList[i];
		fileListNew[i]=new File(fileListNew[i]); //  /を\に変換
		inddFileitem.replace(fileListNew[i]);
	}
	appBook.automaticPagination=true;
}