メモ Illustrator上で、レイヤー別に、「レイヤー順 ... | zig5z7 | sa.yona.la ヘルプ | タグ一覧 | アカウント登録 | ログイン

メモ Illustrator上で、レイヤー別に、「レイヤー順の連番_レイ ヤー名.svg」を書き出すスクリプト.jsx

返信

5/4 ちゃんと動かない。というか非表示のレイヤーの分まで含めちゃう。


・レイヤー名に日本語が含まれる場合はCS2以上。

・既存のファイル、同名のレイヤー、オブジェクトのないレイヤー、等のチェックなし。


母体はこれ

http://d.hatena.ne.jp/ROCO/20080918/1221697110

PNG書き出し用


改造箇所の元はこれ

http://d-p.2-d.jp/ai-js/pages/01_scripts/other/index.html#26_layers_to_files


以下、書き出す形式とオプションとファイル名を変えた(ふたつめのから切り貼りした)だけなのでたぶんうごく。検証中

4/30追記:なんか気持ち悪いので連番の先頭を0で埋めて桁を揃えた(4桁。0001から9999までいける)。

原典はこれ

http://studyingtopology.blog23.fc2.com/blog-entry-41.html


/**

* @author Niels Bosma (niels.bosma@motorola.com

* modified by zig5z7

*/


var folder = Folder.selectDialog();

var document = app.activeDocument;

if(document && folder)

{

var options = new ExportOptionsSVG();

options.compressed = 0;

options.embedRasterImages = 1;

options.embedAllFonts = 1;

options.preserveEditability = 1;

options.documentEncoding = "SVGDocumentEncoding.UTF8";

var n = document.layers.length;

for(var i=0; i<n; ++i)

{

hideAllLayers();

var layer = document.layers[i];

layer.visible = true;

var zeroPadding = ("000" + (i+1)).slice(-4)

        

var file = new File(folder.fsName+"/"+ zeroPadding + "_" +layer.name+".svg");

var options = new ExportOptionsSVG();

options.artBoardClipping = true;

document.exportFile(file,ExportType.SVG,options);


}

showAllLayers();

}


function hideAllLayers()

{

forEach(document.layers, function(layer) {

layer.visible = false;

});

}


function showAllLayers()

{

forEach(document.layers, function(layer) {

layer.visible = true;

});

}


function forEach(collection, fn)

{

var n = collection.length;

for(var i=0; i<n; ++i)

{

fn(collection[i]);

}

}

投稿者 zig5z7 | 返信 (0) | トラックバック (0)

このエントリーへのトラックバックアドレス:
API | 利用規約 | プライバシーポリシー | お問い合わせ Copyright (C) 2024 HeartRails Inc. All Rights Reserved.