My memory is fairly vague on the details, but this is what my final script ended up to be:
(hope that helps)
try {
var data = GetDataFromDocument( activeDocument );
if ('eps' == data.extension.toLowerCase()) {
//convert to cmyk
converToCMYK ( rasterize = true ) ;
toSquare();
epsSave();
}
else{
//run code to square up images
toSquare();
saveQuit();
}
}
catch( e ) {
alert(e);
}
//FUNCTIONS
///////////////////////////////////////////////
///////////////////////////////////////////////
function toSquare(){
var savedRuler= app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var w = app.activeDocument.width;
var h = app.activeDocument.height;
if(w>h) app.activeDocument.resizeCanvas (w, w, AnchorPosition.MIDDLECENTER);
if(w<h) app.activeDocument.resizeCanvas (h, h, AnchorPosition.MIDDLECENTER);
//if w==h already square
app.preferences.rulerUnits = savedRuler;
}
///////////////////////////////////////////////
function GetDataFromDocument( inDocument ) {
var data = new Object();
var fullPathStr = inDocument.fullName.toString();
var lastDot = fullPathStr.lastIndexOf( "." );
var fileNameNoPath = fullPathStr.substr( 0, lastDot );
data.extension = fullPathStr.substr( lastDot + 1, fullPathStr.length );
var lastSlash = fullPathStr.lastIndexOf( "/" );
data.fileName = fileNameNoPath.substr( lastSlash + 1, fileNameNoPath.length );
data.folder = fileNameNoPath.substr( 0, lastSlash );
data.fileType = inDocument.fullName.type;
return data;
}
///////////////////////////////////////////////
function converToCMYK( rasterize )
{
var idCnvM = charIDToTypeID( "CnvM" );
var desc39 = new ActionDescriptor();
var idT = charIDToTypeID( "T " );
var idCMYM = charIDToTypeID( "CMYM" );
desc39.putClass( idT, idCMYM );
var idMrge = charIDToTypeID( "Mrge" );
desc39.putBoolean( idMrge, false );
var idRstr = charIDToTypeID( "Rstr" );
desc39.putBoolean( idRstr, rasterize );
executeAction( idCnvM, desc39, DialogModes.NO );
}
//////////////////////////////////////////////
function saveQuit(){
var quitOut = app.doAction("saveQuit", "Commands.atn");
return quitOut;
}
//////////////////////////////////////////////
function epsSave() {
var doc = app.activeDocument;
var docName = doc.name;
docName = docName.match(/(.*)(\.[^\.]+)/) ? docName = docName.match(/(.*)(\.[^\.]+)/):docName = [docName, docName];
var suffix = '_300';
var saveName = new File(decodeURI(doc.path)+'/'+docName[1]+suffix+'.eps');
saveFile( app.activeDocument, saveName );
}
function saveFile( doc, saveFile ) {
var saveOptions = new EPSSaveOptions( );
saveOptions.embedColorProfile = true;
saveOptions.BINARY;
saveOptions.halftoneScreen = false;
saveOptions.interpolation = false;
saveOptions.psColorManagement = false;
saveOptions.transferFunction = false;
saveOptions.vectorData = false;
doc.saveAs( saveFile, saveOptions, true );
}