入稿データチェック
2025/07/29 22:46
イラレの入稿データチェックを一括で処理するスクリプト。
実行内容は以下の通り
- アウトライン化がされているか
- 画像は埋め込まれているか
- 画像はCMYKになっているか
入稿先仕様にあわせて多少カスタマイズは必要だけど、一番めんどいタイプでのチェックとする。
チェック後、問題のあるファイルについて記載したcheck_report.txtをチェックを走らせたディレクトリに追加して完了する仕組み。
適当な場所にjsxファイル保存して実行させる。
#adobe #illustrator #イラレ
#target illustrator
var folder = Folder.selectDialog("AIファイルがあるフォルダを選んでください");
if (folder == null) {
alert("フォルダが選択されませんでした。");
exit();
}
var files = folder.getFiles("*.ai");
var report = "";
for (var i = 0; i < files.length; i++) {
var file = files[i];
var doc = null;
try {
doc = app.open(file);
var fileName = decodeURI(file.name);
var outlineOK = true;
var allEmbedded = true;
var allCMYK = true;
if (doc.textFrames.length > 0) outlineOK = false;
for (var k = 0; k < doc.placedItems.length; k++) {
if (!doc.placedItems[k].embedded) {
allEmbedded = false;
break;
}
}
for (var l = 0; l < doc.rasterItems.length; l++) {
var img = doc.rasterItems[l];
if (!img.embedded) continue;
if (img.imageColorSpace !== ImageColorSpace.CMYK) {
allCMYK = false;
break;
}
}
if (!outlineOK || !allEmbedded || !allCMYK) {
report += fileName + ":\r\n";
if (!outlineOK) report += " ① アウトライン未処理\r\n";
if (!allEmbedded) report += " ② リンク画像あり\r\n";
if (!allCMYK) report += " ③ 埋め込み画像がCMYKでない\r\n";
report += "\r\n";
}
doc.close(SaveOptions.DONOTSAVECHANGES);
} catch (e) {
report += decodeURI(file.name) + ": エラー - " + e.message + "\r\n\r\n";
if (doc) doc.close(SaveOptions.DONOTSAVECHANGES);
}
}
// レポート保存(Shift-JIS)
if (report === "") {
alert("すべてのファイルはチェックをパスしました。");
} else {
var logFile = new File(folder.fsName + "/check_report.txt");
logFile.encoding = "Shift-JIS";
logFile.open("w");
logFile.write(report);
logFile.close();
alert("NGファイル一覧を 'check_report.txt' に出力しました。");
}