DTP駆け込み寺

No.20602へ返信

記事投稿フォーム
補助
送信

[ 返信 ]

Re^3: フォルダからindd.を検索して

Re^3: フォルダからindd.を検索して

ひとまず簡単なテストで動作したので試してみてください。
4行目の depthValue = 3; というところで「何階層まで見る」か定義しているので
解釈違いがあったら適宜書き換えてください。

------------------
var folderObj = Folder.selectDialog("フォルダを選択してください");
var fileList = [];
var dirDepth = 1;
var depthValue = 3;

findIndd(folderObj, dirDepth);
alert(fileList.length + " 個のinddファイルが見つかりました");

for (var i = 0; i < fileList.length; i++){
fileObj = new File(fileList[i].fsName);
savePath = fileObj.fsName.replace(/\.indd$/i, ".pdf");
app.open(File(fileObj));
app.activeDocument.exportFile(ExportFormat.pdfType, savePath, false, "[最小ファイルサイズ]");
app.activeDocument.close(SaveOptions.no);
}

alert("完了");

function findIndd(dir, dep){
var files = dir.getFiles();
for(var i = 0; i < files.length; i++){
if(files[i].displayName.match(/\.indd$/i)){
fileList.push(files[i]);
continue;
}
if(dep < depthValue && files[i].constructor.name == "Folder"){
findIndd(files[i], dep + 1);
}
}
}
------------------

本来、フリーで公開されているスクリプトでも著作権の主張や
加工・二次配布の禁止(のお願い)など記載してある場合がありますが
tu-kazu.jpさんのサイトで特にそういう記載が見つけられなかったのと
元のスクリプトの原型がほとんど残らなかったので、まあいいかと…

[20602] (z-) (2021/08/20 Fri 14:25)