var Lib = {
getFiles : function ( fo, aExtensions, bRecursive, aFiles, includeFolder )
{
var exts = aExtensions? aExtensions.join("|") : ".+" ;
var pattern = new RegExp ( "\\."+exts+"$", "g" );
var files = aFiles? aFiles : [];
var filterFunction = function(file)
{
return pattern.test ( file.name );
}
if ( bRecursive )
{
var foFiles = fo.getFiles();
while ( f = foFiles.shift() )
{
if ( f instanceof Folder )
{
if (includeFolder===true) files[ files.length ] = f;
this.getFiles ( f, aExtensions, true, files );
}
if ( f instanceof File && pattern.test ( f.name ) && f.name!=".DS_Store" )
files[ files.length ] = f;
}
return files;
}
else
{
return fo.getFiles ( filterFunction );
}
},
exportFile:function(file, opts, pngOpts) {
var doc = app.open ( file ), data = {ok:true};
try {
//doc.saveAs ( File ( file.parent+"/"+file.name.replace ( /\.eps?$/i, "" )+".pdf" ), opts);
doc.exportFile( File ( file.parent+"/"+file.name.replace ( /\.eps?$/i, "" )+".png" ), ExportType.PNG24, pngOpts );
}
catch(err) {
data.ok = false;
data.message = "⚠ "+file.name+" couldn't exported cause :"+err.message ;
}
doc.close ( SaveOptions.DONOTSAVECHANGES );
return data;
},
log:function(msg) {
var f = File ( Folder.desktop+"/batchExport.txt" );
f.open('a');
f.writeln ( msg );
f.close();
},
getPNGOpts:function() {
var opts = new ExportOptionsPNG24();
opts.antiAliasing = true;
opts.transparency = true;
return opts;
},
getPDFOpts:function() {
var opts = new PDFSaveOptions();
opts.preserveEditability = true;
//whatever options you may want to set here
return opts;
}
}
var main = function() {
var fo = Folder.selectDialog("Please choose a folder"),
files,n = 0,
uip, result, pdfOpts, errors = [],
pngOpts;
if ( !fo ) return;
files = Lib.getFiles ( fo, ["eps"], true );
n = files.length;
if ( !n ) {
alert("No files could be found");
return;
}
pdfOpts = Lib.getPDFOpts();
pngOpts = Lib.getPNGOpts();
uip = app.userInteractionLevel;
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;
while (n--) {
result = Lib.exportFile ( files, pdfOpts, pngOpts );
!result.ok && errors.push ( result.message );
}
app.userInteractionLevel = uip;
errors.length && Lib.log ( errors.join("\r") );
alert( errors.length? "Some errors occured. Check log on Desktop" : "Everything worked smoothly" );
}
main();