2026年3月2日

Adobe illustrator

Excelから書き出したPDFをillustratorでベクター化した際に起こる色濁りを一発正規化!

Excelから書き出したPDFをillustratorでベクター化した際に起こる色濁りを一発正規化!

RGB由来の色濁り、一発置換したい!

Excelから書き出したPDFをCMYK環境のillustratorに配置して透明分割で、書体毎アウトライン化して使う。
そのような強引な作業は…一部の印刷屋しかしないですかね。

私たちも、まれにそんな作業をせざるを得ないケースが発生します。
でも…、RGBのPDFをこんなやり方でベクター化すると、色は濁りますよね。
で、思うわけです。

「簡単に正規化したい」

そこで、スクリプトで一発解決できるよう組んでみました。
初版とはいえ、Version5。ある程度、気持ちよく変換してくれます。
一部の方にしかニーズのないスクリプトですが、以下の仕様に準じて変換されます。
スクリプト内を適用変更する事で、ご自身に合わせたカスタムも可能。

スクリプトをすぐに呼び出せるようにするには、アプリケーションフォルダに格納するのが手っ取り早いです。
Macなら
【/Applications/Adobe Illustrator [バージョン]/Presets/ja_JP/スクリプト/】
Windowsなら
【C:\Program Files\Adobe\Adobe Illustrator [バージョン]\Presets\ja_JP\スクリプト\】
格納後に、一度illustratorを再起動してくださいね。

もし…必要な機会があれば試してみてください。ダウンロードは最下部から。

v5.0  |  CMYK_Normalize_v5.jsx

CMYK 正規化
スクリプト仕様書

RGB → CMYK 変換時に生じる「汚れた色」を自動正規化する Illustrator スクリプトの技術仕様

C
M
Y
K
クリーンなCMYK
01

概要

このスクリプトは、Adobe Illustrator 上で RGBドキュメントをCMYKドキュメントに変換した際に生じる「汚れた色」を自動的に正規化するツールです。

ExcelデータをベースにしたPDFをIllustratorで展開した場合、RGB→CMYK変換時に意図しない色の混入(不純物)や、黒がリッチブラックになるなどの問題が発生します。本スクリプトはこれらを一括で修正します。

対象環境

対応アプリ
Adobe Illustrator
ExtendScript対応全バージョン
ドキュメント前提
CMYKモードのドキュメント
RGB→CMYK変換済みであること
対象オブジェクト
PathItem / GroupItem
CompoundPathItem / TextFrame
対象属性
Fill(塗り)/ Stroke(線)
テキスト文字色 すべて

実行方法

1
ドキュメントをCMYKモードに変換する
ファイル → ドキュメントのカラーモード → CMYKカラー
2
スクリプトを実行する
ファイル → スクリプト → その他のスクリプト... → CMYK_Normalize_v5.jsx を選択
3
完了アラートを確認する
Fill / Stroke / Text の変換件数がアラートで表示される
02

処理フロー

スクリプトは以下の2パスで処理を行います。

パス1:Y値の事前スキャン(グループ統一用)

全オブジェクトのY値を収集してグループ化
ドキュメント内の全オブジェクトを走査し、有彩色かつ Y=50以下 の Yellow値を収集。差が10未満のY値をグループ化し、最大値を代表値とした置換マップを作成する。
同一の黄色に見えるオブジェクトが異なるY値(例:49と42)になっている場合に統一するための前処理

パス2:正規化実行

全オブジェクトを再帰的に走査して正規化
グループ・複合パスも再帰的に処理。エラーが発生したオブジェクトはスキップし、完了後にエラー件数を報告する。
03

処理ルール詳細

各色に対して、以下の5つのルールが順序通りに適用されます。

ルール 1:無彩色判定(黒・グレー)

C, M, Y のばらつきが 10以下 → 無彩色として処理
max(C,M,Y) − min(C,M,Y) ≦ 10 の場合、有彩色成分を排除してKのみで表現する。
条件処理内容変換前の例変換後
明度 ≦ 10 K=100(純黒)に置換
C, M, Y はすべて 0
C=92.9 M=87.9
Y=89.0 K=80
K=100
明度 > 10 C, M, Y=0 のグレーに変換
K値は明度から逆算
C=10 M=9
Y=11 K=50
K=適切な値
明度計算式:L = 100 × (1 − K/100) × (1 − CMY平均/100)

ルール 2:有彩色の不純物除去

C, M, Y のばらつきが 10超 → 有彩色として不純物除去
C, M, Y の最大値を基準として、最大値の 35% 以下の成分を「不純物」とみなし 0 に丸める。
変換前判定変換後
C=5.88 / M=17.8 / Y=10.8 / K=0
ピンク
最大=M=17.8 / 17.8×35%=6.23
C=5.88 < 6.23 → 不純物
C=0 M=18 Y=11 K=0
C=6.93 / M=0 / Y=49.1 / K=0
黄色
最大=Y=49.1 / 49.1×35%=17.2
C=6.93 < 17.2 → 不純物
C=0 M=0 Y=50 K=0
K値も同様に、CMY最大値との比率で不純物判定を行う

ルール 3:Y値グループ統一(Y=50以下のみ)

有彩色かつ Y=50以下 の場合、パス1の置換マップでY値を統一
印刷上 Y=40〜50 の範囲は視覚的に近似しやすいため、差が10未満のグループは最大値に統一する。
条件処理内容
Y=50以下で差が10未満グループ内の最大値に統一Y=49 と Y=42 → 差=7 → どちらも Y=49 に
Y=50以下で差が10以上それぞれ独立して処理Y=49 と Y=38 → 差=11 → 別グループ
Y=50超通常の5の倍数丸めのみY=76 → Y=75、Y=78 → Y=80

ルール 4:5の倍数への丸め

C, M, Y, K の各値を 5 の倍数に丸める
K=0K=100 は丸め対象外とし、そのまま維持する。
元の値変換後備考
Y=49Y=50四捨五入
Y=42Y=40四捨五入
K=0K=0丸め対象外
K=100K=100丸め対象外
K=73K=75四捨五入

ルール 5:CMY 95%以上の強制100変換

C, M, Y の値が 95 以上かつ 100 未満 → 100 に強制変換
印刷において95%と100%の差は視覚的にほぼ識別できず、95%前後の網点は印刷精度上のリスクとなる。100%に統一することで安定した出力を実現する。
元の値変換後
C=95C=100
M=97M=100
Y=96(5の倍数丸め後=95)Y=100
C=100C=100(対象外)
5の倍数丸めの後に本処理が適用されるため、Y=96 は「96 → 95(丸め)→ 100(強制変換)」となる
04

カスタマイズパラメータ

スクリプト冒頭の変数を変更することで、判定閾値を調整できます。

変数名初期値説明調整の目安
ACHROMATIC_THRESHOLD10C,M,Yのばらつきがこの値以下なら無彩色と判定下げる→有彩色を広く認識
上げる→無彩色を広く認識
BLACK_LIGHTNESS10この明度以下をK100(純黒)とする上げると暗めのグレーもK100に
IMPURITY_RATIO0.35CMY最大値のこの割合以下の成分を不純物と判定上げる→より積極的に除去
下げる→保守的に除去
ROUND_UNIT5有彩色の値を丸める単位1にすると整数丸め
Y_GROUP_THRESHOLD10Y=50以下でこの差以内なら同一グループとみなす広げると統一範囲が拡大
Y_LOW_CEILING50グループ統一を適用するYの上限値必要に応じて拡大可能
05

処理対象外のケース

ケース理由
有彩色の色調整(ネイビー・赤・緑など)ばらつきが10超のため無彩色処理の対象外。不純物除去のみ実施
配置画像(リンク・埋め込み)ラスターデータはIllustrator上でオブジェクトとして扱われないため対象外
パターン・グラデーションCMYKColor以外の色種別は処理をスキップ
RGBドキュメント上での実行ドキュメントがCMYKモードであることが前提。RGB環境では変換不可
必ずCMYKモードに変換してからスクリプトを実行してください。RGBドキュメントのまま実行しても変換件数が0になります。
06

今後の拡張予定

v6 予定
C値・M値にもY値と同様のグループ統一アルゴリズムを導入。ドキュメント内の近似するC/M値を自動で統一する。
検討中
特定レイヤーのみを対象とするオプションの追加。大規模ドキュメントでの部分的な適用が可能になる。
検討中
変換ログのテキストファイル出力機能。どのオブジェクトがどのように変換されたかを記録・確認できる。
Categories: DTP, Script関連, TipsPublished On: 2026年3月 2日By
DTP Tips
  • Excelから書き出したPDFをillustratorでベクター化した際に起こる色濁りを一発正規化!

    2026年3月2日

  • Adobe illustratorに配置した画像を同名のPDFに一括置き換え!

    2026年2月26日

  • バラバラのテキストをつないで1つに!

    2026年2月4日

  • Adobe illustrator Beta版「ターンテーブル」を使ってみた!

    2025年11月6日

  • Illustratorでつくる文字の囲み枠

    2024年8月22日

  • ドキュメントプロファイルを使って
    新規作業のストレスを軽減しよう

    2024年8月19日

WEB Tips
  • モヤッとする、あれ。JS+CSSで「項目間だけ線」をスッキリ解決!

    2025年8月8日

  • WordPressサイトをGoogle検索から除外したい?
    「robots.txt」の正しい活用方法

    2025年7月3日

  • WordPressで記事を投稿してみよう!

    2025年6月26日

  • WordPressアップデートしてますか?

    2024年8月9日

取り組み
  • 小学校低学年向け夏休みカレンダー2025を配付します

    2025年6月20日