Illustrator脚本:将单层导出到SVG

时间:2016-11-01 14:03:14

标签: javascript svg

我一直试图让脚本能够将特定的插图文件导出为SVG格式。我一直在引用this Adob​​e论坛帖子关于这样做的方法,并在某种程度上成功地实现了它,见下文:

    var singleLayer,
    doc,
    path = 'C:/Users/lukeb/Desktop/New folder',
    type = ExportType.SVG,
    options = new ExportOptionsSVG(),
    layerAmount;

doc = this.myApp;
singleLayer = this.myApp.layers["buttons"];
options.embedRasterImages = false;
options.cssProperties = SVGCSSPropertyLocation.PRESENTATIONATTRIBUTES;
options.fontSubsetting = SVGFontSubsetting.None;
options.documentEncoding = SVGDocumentEncoding.UTF8;
options.coordinatePrecision = 4;
layerAmount = doc.layers.length;

hideAllLayers();
for (var i = layerAmount - 1, k = 0; i >= 0; i--, k++) {
    if (this.myApp.layers[i] === singleLayer) {
        var file;

        singleLayer.visible = true;
        file = new File(path + "/" + singleLayer);
        this.myApp.exportFile(file, type, options);
        singleLayer.visible = false;
    }
}
showAllLayers();

function hideAllLayers() {
    for(var i = 0; i < layerAmount; i++) {
        doc.layers[i].visible = false;
    }
}

function showAllLayers() {
    for(var i = 0; i < layerAmount; i++) {
        doc.layers[i].visible = true;
    }
}

此代码在某种程度上运行良好。它将我的图层库中的图层单个化,并将其全部关闭,除了那个。但由于某些原因,它不会将这一层导出为SVG,它会导出很多,如果不是全部的话。这有什么不足之处吗?所有这些都没有很多文档,所以不太确定只需要一层的傻瓜式解决方案。

0 个答案:

没有答案