Copy link to clipboard
Copied
Hi all,
Novice user here. Just had my mind blow today when I discovered the concept of Illustrator scripts. I have no idea how to create or edit them, but I did manage to find one to download and try it and it worked. I have a ton of newer vector files that I've downloaded and can't open on my personal computer because it only has CS6. My work computer has CC22, but I'm talking like hundreds of files to convert. I found a script that worked to convert newer ai files to legacy ai files, now I just need one to convert newer eps files to legacy ai files. Below is the script I used to go from new ai to legacy ai. Does anyone know how to tweak it to go from new eps to legacy ai?
Any thoughts are much appreciated.
Here's the source: https://gist.github.com/joonaspaakko/df2f9e31bdb365a6e5df
Here's the script:
// https://gist.github.com/joonaspaakko/df2f9e31bdb365a6e5df
// Finds all .ai files from the input folder + its subfolders and converts them to the version given below in a variable called "targetVersion"
// Tested in Illustrator cc 2014 (Mac)
// Didn't bother to do a speed test with my macbook air...
#target illustrator
// If set to false, a new file will be written next to the original file.
// The new file will have (legacyFile) in the name.
// Files with (legacyFile) in the file name are always ignored.
var overwrite = true, // boolean
// Accepted values:
// 8, 9, 10, 11 (cs), 12 (cs2), 13 (cs3), 14 (cs4), 15 (cs5), 16 (cs6), 17 (cc)
targetVersion = 13;
if ( app.documents.length > 0 ) {
alert("ERROR: \n Close all documents before running this script." );
}
// Run the script
else {
var files,
folder = Folder.selectDialog("Input folder...");
// If folder variable return null, user most likely canceled the dialog or
// the input folder and it subfolders don't contain any .ai files.
if ( folder != null ) {
// returns an array of file paths in the selected folder.
files = GetFiles( folder );
// This is where things actually start happening...
process( files );
}
}
function process( files ) {
// Loop through the list of .ai files:
// Open > Save > Close > LOOP
for ( i = 0; i < files.length; i++ ) {
// Current file
var file = files[i]
// Open
app.open( file );
// If overwrite is false, create a new file, otherwise use "file" variable;
file = !overwrite ? new File( file.toString().replace(".ai", " (legacyFile).ai") ) : file;
// Save
app.activeDocument.saveAs( file, SaveOptions_ai() )
// Close
app.activeDocument.close( SaveOptions.DONOTSAVECHANGES );
}
// For better of for worse...
alert( "Script is done." );
}
function SaveOptions_ai() {
var saveOptions = new IllustratorSaveOptions();
saveOptions.compatibility = Compatibility[ "ILLUSTRATOR" + targetVersion ];
saveOptions.flattenOutput = OutputFlattening.PRESERVEAPPEARANCE;
saveOptions.compressed = true; // Version 10 or later
saveOptions.pdfCompatible = true; // Version 10 or later
saveOptions.embedICCProfile = true; // Version 9 or later
saveOptions.embedLinkedFiles = false; // Version 7 or later
return saveOptions
}
function GetFiles( folder ) {
var i, item,
// Array to store the files in...
files = [],
// Get files...
items = folder.getFiles();
// Loop through all files in the given folder
for ( i = 0; i < items.length; i++ ) {
item = items[i];
// Find .ai files
var fileformat = item.name.match(/\.ai$/i),
legacyFile = item.name.indexOf("(legacyFile)") > 0;
// If item is a folder, check the folder for files.
if ( item instanceof Folder ) {
// Combine existing array with files found in the folder
files = files.concat( GetFiles( item ) );
}
// If the item is a file, push it to the array.
else if ( item instanceof File && fileformat && !legacyFile ) {
// Push files to the array
files.push( item );
}
}
return files;
}
Basically you would need the script to open both eps and ai files right? then the script just continues saving the current file to legacy ai
change this line
var fileformat = item.name.match(/\.ai$/i),
to this
var fileformat = item.name.match(/\.(ai|eps)$/i),
Copy link to clipboard
Copied
Basically you would need the script to open both eps and ai files right? then the script just continues saving the current file to legacy ai
change this line
var fileformat = item.name.match(/\.ai$/i),
to this
var fileformat = item.name.match(/\.(ai|eps)$/i),
Copy link to clipboard
Copied
Yes, this is perfect, thank you!
Copy link to clipboard
Copied
my pleasure, is your mind blown?