Forked from SebCorbin/Enregistrer la selection en SVG.jsx
Created
January 20, 2020 03:57
-
-
Save iconifyit/90db03aef2ad2d76bc9a182912abd159 to your computer and use it in GitHub Desktop.
Illustrator script - Save selection as SVG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Export selection to SVG - export_selection_as_SVG | |
* (Adapted from Layers to SVG 0.1 - export_selection_as_SVG.jsx, by Rhys van der Waerden) | |
* | |
* @author SebCorbin | |
*/ | |
// Variables | |
var ignoreHidden = true, | |
svgExportOptions = (function () { | |
var options = new ExportOptionsSVG(); | |
options.fontSubsetting = SVGFontSubsetting.GLYPHSUSED; | |
options.embedRasterImages = false; | |
options.fontType = SVGFontType.OUTLINEFONT; | |
return options; | |
}()); | |
// Copy selection to a new document, and save it as an SVG file. | |
var saveSelection = function (file) { | |
var objects = app.activeDocument.selection; | |
if (objects.length > 0) { | |
// Create temporary document and copy all selected objects. | |
var doc = app.documents.add(DocumentColorSpace.RGB); | |
app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM; | |
copyObjectsTo(objects, doc); | |
// Resize the artboard to the object | |
selectAll(doc); | |
//doc.fitArtboardToSelectedArt(0); // Doesn't work | |
doc.artboards[0].artboardRect = doc.visibleBounds; | |
doc.exportFile(file, ExportType.SVG, svgExportOptions); | |
// Remove everything | |
doc.activeLayer.pageItems.removeAll(); | |
doc.close(SaveOptions.DONOTSAVECHANGES); | |
} | |
}; | |
// Duplicate objects and add them to a document. | |
var copyObjectsTo = function (objects, destinationDocument) { | |
for (var i = 0; i < objects.length; i++) { | |
objects[i].duplicate(destinationDocument.activeLayer, ElementPlacement.PLACEATBEGINNING); | |
} | |
}; | |
// Selects all PageItems in the doc | |
var selectAll = function (doc) { | |
var pageItems = doc.pageItems, | |
numPageItems = doc.pageItems.length; | |
for (var i = 0; i < numPageItems; i += 1) { | |
pageItems[i].selected = true; | |
} | |
}; | |
// Init | |
(function () { | |
var file = File.saveDialog('Add SVG file', 'SVG:*.svg'); | |
if (file) { | |
saveSelection(file); | |
} | |
}()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment