LoginSignup
0
1

InDesignドキュメントのカラープロファイルを表示するjsx

Last updated at Posted at 2024-01-13

PhotoshopやIllustratorと違って、InDesignは「単にドキュメントのカラープロファイルを確認する」だけの安全な手段が無いようです(あったら教えて)

Illustratorはドキュメント情報から、Photoshopは情報パネルほかから確認できます。

安全、というのは、操作ミスが起きない確認方法、という意味です。プロファイルの指定やプロファイル変換ダイアログからの確認は、うっかりOKボタンを押す可能性が少しでもあるので勧められません。

以下のコードを〜.jsxと名前をつけて、InDesignのスクリプトフォルダに保存します。

フォルダはInDesignスクリプトパネルから開いてください。ユーザフォルダを右クリック。
SS_CleanShot_20240113-122950.png

function getProfileStatus(docProfile, defProfile) {
    if (!docProfile) {
        return "⚠️タグなし\n作業用(" + defProfile + ")を一時的に使用";
    } else if (docProfile === defProfile) {
        return "🙂作業用と同じ(" + docProfile + "";
    } else {
        return docProfile + "\n⚠️作業用(" + defProfile + ")と異なります";
    }
}

function getPolicyDescription(docPolicy) {
    var policies = {
        "COLOR_POLICY_OFF": "✅オフ(作業用を使用)",
        "COMBINATION_OF_PRESERVE_AND_SAFE_CMYK": "✅CMYK値保持(画像プロファイル破棄)",
        "CONVERT_TO_WORKING_SPACE": "⚠️作業用に全変換",
        "PRESERVE_EMBEDDED_PROFILES": "➡️埋め込みを保持"
    };
    return policies[docPolicy] || docPolicy;
}

function getDocumentAndApplicationColorSettings() {
    var myDoc = app.activeDocument;
    var myCol = app.colorSettings;

    return {
        defCMYK: myCol.workingSpaceCMYK,
        docCMYK: myDoc.cmykProfile,
        defRGB: myCol.workingSpaceRGB,
        docRGB: myDoc.rgbProfile,
        docCMYKPolicy: getPolicyDescription(myDoc.cmykPolicy.toString()),
        docRGBPolicy: getPolicyDescription(myDoc.rgbPolicy.toString())
    };
}

function displayColorProfilesAndPolicies() {
    var colorSettings = getDocumentAndApplicationColorSettings();

    var cmykStatus = getProfileStatus(colorSettings.docCMYK, colorSettings.defCMYK);
    var rgbStatus = getProfileStatus(colorSettings.docRGB, colorSettings.defRGB);

    alert("ドキュメントのカラー設定\n■■■■■ CMYK ■■■■■\n" + cmykStatus + "\n\n■■■■■ RGB ■■■■■\n" + rgbStatus + "\n\n\n■ ドキュメントのポリシー ■\n■■CMYK■■\n" + colorSettings.docCMYKPolicy + "\n\n■■RGB■■\n" + colorSettings.docRGBPolicy);
}

displayColorProfilesAndPolicies();

実行するとこうなります。

246979699324.png

※InDesignドキュメントにカラーマネジメントポリシーが埋め込まれます。
開く際に作業用との差や、ポリシーに沿って(アラートオンなら)処理方法を聞かれます。

破棄・オフ:作業用を使用
カラー値を保持(プロファイル破棄):数値が変わってはいけないCMYK用のポリシー
作業用に変換:これやると、CMYKドキュメントのオブジェクトの数値も変わるので危険
埋め込みを保持:プロファイルが埋まっているなら保持

ドキュメントにカラープロファイルが埋め込まれていない「タグなし」の場合、編集>カラー設定で指定した作業用プロファイルが仮に使用されます。ドキュメントとプロファイルが紐付けされていないため、作業用プロファイルを変えるとドキュメントの表示もそれに合わせて変わります。
プロファイルが埋め込まれている=ドキュメントとプロファイルが紐付けられている状態では、作業用プロファイルは関係ありません。
※一部の数値計算の表示に使われるだけです。

コードはプロパティの取得方法をChatGPTに教えて書かせたものです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1