Beginner Tech Blog

Beginner Tech Blog Branding

入稿データチェック

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' に出力しました。");
}

© 2025 Beginner Tech Blog | Built with U