How to get "proofSetup" values from Photoshop via Alchemist (or any other way)?

I am looking to access the values in the “Custom Proof Condition” dialog window accessed via the View > Proof Setup > Custom… menu command in Photoshop. An example of this dialog window is shown below:

custom-proof-condition

Photoshop knows what these values are since they are sticky from the last time they were set. However, looking through the “Application” and “Document” types in Alchemist doesn’t seem to have an option for accessing them. The closest I came is the “menuBarInfo” property for the “Application” type.

const softProofValues = batchPlay([
     { _obj: 'get', _target: [ { _property: "menuBarInfo" }, { _ref: 'application', _enum: 'ordinal', _value: 'targetEnum' } ], },
], { synchronousExecution: true })[0].menuBarInfo;  
        
console.log(softProofValues)

However, index [0] and [1] of this getter don’t have the dialog window’s values.

Clicking “OK” on the above dialog window does record usable batchPlay code in Alchemist. Example below:

const batchPlay = require("photoshop").action.batchPlay;

const result = await batchPlay(
[
   {
      _obj: "proofSetup",
      mode: {
         _class: "CMYKColorMode"
      },
      intent: {
         _enum: "intent",
         _value: "colorimetric"
      },
      mapBlack: true,
      _options: {
         dialogOptions: "dontDisplay"
      }
   }
],{});

However, I can’t find a corresponding getter for this “proofSetup” setter. I’d like to know the values in this dialog window before going in and changing them programmatically.

Does anyone have any thoughts on how to get the values from this dialog window?

Hi Tony,
try this:

await executeAsModal(async () => {
    let r = await batchPlay([
        {
            _obj: "proofSetup"
        }
    ], {})
    console.log(r[0])
}, { commandName: "proofing" })

You’ll see that you’re gonna get constants for built-int setups or full info when custom ICC profiles are chosen.
HTH,

Davide

Well, I was definitely making that harder than it needed to be. Thanks for showing me how to get data w/o a getter @DavideBarranca.

1 Like