-
-
Save joonaspaakko/df2f9e31bdb365a6e5df to your computer and use it in GitHub Desktop.
// 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; | |
} |
I tried this and it worked great. Any chance there's a way to tweak it so that it could be used to save newer EPS files as legacy AI files? (I should also note that I just discovered the concept of Illustrator scripts today and have no idea how to create or modify them :))
@strathmoredesigns, should work if you change line 101 to say .eps
where it now says .ai
.
@joonaspaakko I just tried this and it works! Thank you so much for creating it and walking me through my first Javascript edit :)
I need script for illustrator 2024 ai files to convert illustrator 2022 script. please help me
@giripappaiya, yea, the script stops listing targetVersion
s after CC, which obviously doesn't refer to every single CC version, just the first one. I don't know if there is a better list, but you can find them in Wikipedia: Illustrator release history. Starting from CS, the targetVersion
is in parentheses.
@giripappaiya, something like this, I guess. If you need more PDF save options, you can find them in the javascript reference pdf (starting from page 144), and you put them in the
SaveOptions_pdf()
function in the code.