I have a script to save files as PSDs, that of course errors out when the file is over 2GB, since it should save as a PSB instead. Basic logic, I'd like the script to check file size, and determine if it needs to be a PSD or a PSB and save, without throwing an error. Where/when would I check the file size to have a script to save as PSB? I've recorded save as PSB via script listener, and I'm seeing 2 different states for saving PSBs, "Begin" and "Success", along with a background file save complete. var jsFilePath = "/Users/<<USER_NAME>>/Desktop/theFileOver2GB.psb"
// ======================================================= Begin
var idsave = stringIDToTypeID( "save" );
var desc766 = new ActionDescriptor();
var idas = stringIDToTypeID( "as" );
var desc767 = new ActionDescriptor();
var idmaximizeCompatibility = stringIDToTypeID( "maximizeCompatibility" );
desc767.putBoolean( idmaximizeCompatibility, true );
var idlargeDocumentFormat = stringIDToTypeID( "largeDocumentFormat" );
desc766.putObject( idas, idlargeDocumentFormat, desc767 );
var idin = stringIDToTypeID( "in" );
desc766.putPath( idin, new File( jsFilePath ) );
var iddocumentID = stringIDToTypeID( "documentID" );
desc766.putInteger( iddocumentID, 450 );
var idlowerCase = stringIDToTypeID( "lowerCase" );
desc766.putBoolean( idlowerCase, true );
var idsaveStage = stringIDToTypeID( "saveStage" );
var idsaveStageType = stringIDToTypeID( "saveStageType" );
var idsaveBegin = stringIDToTypeID( "saveBegin" );
desc766.putEnumerated( idsaveStage, idsaveStageType, idsaveBegin );
executeAction( idsave, desc766, DialogModes.NO );
// ======================================================= Success
var idsave = stringIDToTypeID( "save" );
var desc769 = new ActionDescriptor();
var idas = stringIDToTypeID( "as" );
var desc770 = new ActionDescriptor();
var idmaximizeCompatibility = stringIDToTypeID( "maximizeCompatibility" );
desc770.putBoolean( idmaximizeCompatibility, true );
var idlargeDocumentFormat = stringIDToTypeID( "largeDocumentFormat" );
desc769.putObject( idas, idlargeDocumentFormat, desc770 );
var idin = stringIDToTypeID( "in" );
desc769.putPath( idin, new File( jsFilePath ) );
var iddocumentID = stringIDToTypeID( "documentID" );
desc769.putInteger( iddocumentID, 450 );
var idlowerCase = stringIDToTypeID( "lowerCase" );
desc769.putBoolean( idlowerCase, true );
var idsaveStage = stringIDToTypeID( "saveStage" );
var idsaveStageType = stringIDToTypeID( "saveStageType" );
var idsaveSucceeded = stringIDToTypeID( "saveSucceeded" );
desc769.putEnumerated( idsaveStage, idsaveStageType, idsaveSucceeded );
executeAction( idsave, desc769, DialogModes.NO );
// =======================================================
var idbackgroundSaveCompleted = stringIDToTypeID( "backgroundSaveCompleted" );
var desc771 = new ActionDescriptor();
var iddocumentID = stringIDToTypeID( "documentID" );
desc771.putInteger( iddocumentID, 450 );
var idsaveScheduleMode = stringIDToTypeID( "saveScheduleMode" );
desc771.putString( idsaveScheduleMode, """auto""" );
var iddontRecord = stringIDToTypeID( "dontRecord" );
desc771.putBoolean( iddontRecord, true );
var idforceNotify = stringIDToTypeID( "forceNotify" );
desc771.putBoolean( idforceNotify, true );
executeAction( idbackgroundSaveCompleted, desc771, DialogModes.NO );
... View more