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; }