openmoji
Version:
Open source emojis for designers, developers and everyone else!
112 lines (95 loc) • 3.25 kB
JSX
#target Illustrator
function exportDoc(doc, artboardIndex, dirOut) {
removeAllArtboardsBut(doc, artboardIndex)
unlockAll(doc);
doc.artboards.setActiveArtboardIndex(0);
doc.selectObjectsOnActiveArtboard();
// remove all items not on active artboard
// https://ten5963.wordpress.com/illustrator-ccver-22-menu-commands-list/
app.executeMenuCommand("Inverse menu item");
app.executeMenuCommand("clear");
// find grid and group it
var gridLayer = doc.layers.getByName("grid");
selectItems(gridLayer.pageItems);
app.executeMenuCommand("group");
// expand styles and resize artboard to grid bounds and remove layer afterwards
app.executeMenuCommand("expandStyle");
var grid = gridLayer.groupItems[gridLayer.groupItems.length-1]; // last item
doc.artboards[0].artboardRect = grid.geometricBounds;
gridLayer.remove();
// delete everything else
doc.selectObjectsOnActiveArtboard();
app.executeMenuCommand("Inverse menu item");
app.executeMenuCommand("clear");
// remove layer "description"
var descriptionLayer = doc.layers.getByName("description");
descriptionLayer.remove();
// export
var fileName = doc.name.replace(/\.svg|\.ai|\.eps|\.pdf/gi, "");
// exportPng(doc, new File(dirOut.fsName+"/72x72/"+fileName+".png"));
// exportPng(doc, new File(dirOut.fsName+"/618x618/"+fileName+".png"), 858.3);
exportSvg(doc, new File(dirOut.fsName+"/svg/"+fileName+".svg"));
}
function selectItems(items) {
for (var i = 0; i < items.length; i++) {
items[i].selected = true;
}
}
function removeAllArtboardsBut(doc, index) {
for (var i = doc.artboards.length-1; i >= 0; i--) {
if (i === index) continue;
doc.artboards[i].remove(i);
}
}
function exportPng(doc, newFile, scale) {
var pngOptions = new ExportOptionsPNG24();
if (scale) {
pngOptions.horizontalScale = scale;
pngOptions.verticalScale = scale;
}
pngOptions.antiAliasing = true;
pngOptions.transparency = true;
pngOptions.artBoardClipping = true;
doc.exportFile(newFile, ExportType.PNG24, pngOptions);
}
function exportSvg(doc, newFile) {
var svgOptions = new ExportOptionsSVG();
svgOptions.embedRasterImages = false;
svgOptions.DTD = SVGDTDVersion.SVG1_1;
svgOptions.cssProperties = SVGCSSPropertyLocation.PRESENTATIONATTRIBUTES;
svgOptions.fontSubsetting = SVGFontSubsetting.None;
svgOptions.documentEncoding = SVGDocumentEncoding.UTF8;
svgOptions.coordinatePrecision = 4;
doc.exportFile(newFile, ExportType.SVG, svgOptions);
}
function getFilesRecursive(folder, fileType) {
function _traverseFolder(folder, fileType) {
var files = folder.getFiles();
for (var i = 0; i < files.length; i++) {
if (files[i] instanceof File) {
if (files[i].name.indexOf(fileType) > 0) {
// println(files[i]);
results.push(files[i]);
}
} else {
_traverseFolder(files[i], fileType);
}
}
}
var results = [];
_traverseFolder(folder, fileType);
return results;
}
function unlockAll(doc) {
for (var i = 0; i < doc.layers.length; i++) {
doc.layers[i].locked = false;
}
}
function createFolder(path) {
var f = new Folder(path);
if (!f.exists) f.create();
return f;
}
function println(txt) {
$.writeln(txt)
}