都内でデザイナー職をやっています
目指すこと
Illustratorの『スクリーン用に書き出し』をスクリプトにやってもらい アートボードごとにSVGを書き出すリファレンスを見る
https://www.adobe.com/devnet/illustrator/scripting.html
JavaScript、VB Script、AppleScript でのそれぞれのリファレンスが
PDF がダウンロードできるAdobe公式のページ
それはやばいものだった
- PDFである
- あのAdobeぞ? Acrobat作っている Adobeぞ? なので仕方ない
- PDFにロックがかかっており、テキストのコピーすらできない
- 英語のため、翻訳しようと思ったときに困る 英語が読めれば問題ないから仕方ない
- コードもすべて写経しないといけない 写経は大事だから仕方ない
- スクリーン用に書き出し のスクリプトがない
- CC2015くらいから導入されたはずだけど まぁ比較的新しい機能だから仕方ない
- スクリプトでできるようになったのは CC2018 からで、CC2017までのリファレンスしかないから仕方ない
仕方ない
Google検索で情報を集めることにした
なお
ドキュメント自体を保存(Cmd+S)させる exportFile
はリファレンスで解説されている
それでもSVGの出力をすることができるが、元のドキュメントへの影響がありそうなので使わない
コード
export-svg.js
#target "Illustrator";
var doc = app.activeDocument;
// 保存するフォルダを選択させる
var folder = Folder.selectDialog();
if (!folder) return;
var file = new File(folder + '/');
var whatToExport = new ExportForScreensItemToExport();
whatToExport.document = true;
var options = new ExportForScreensOptionsWebOptimizedSVG();
options.coordinatePrecision = 2;
options.cssProperties = SVGCSSPropertyLocation.PRESENTATIONATTRIBUTES;
options.documentEncoding = SVGDocumentEncoding.UTF8;
options.saveMultipleArtboards = true;
// (exportFolder: File , exportFormat: ExportForScreensType , options:any, itemToExport: ExportForScreensItemToExport , fileNamePrefix: string )
doc.exportForScreens(file, ExportForScreensType.SE_SVG, options, whatToExport, '');
設定の内容
ExportForScreensItemToExport
ここの画面での設定と同じオプション | 型(予想) | 内容 |
---|---|---|
document | boolean | 不明 trueにするのがよさそう? |
artboards | string | 書き出し範囲のこと01-50 などと指定省略はすべてのアートボードを出力 |
その他 | 不明 今後のリファレンスに期待 |
ExportForScreensOptionsWebOptimizedSVG
この画面での設定と同じリファレンスの ExportOptionsSVG
と同じ内容が書けるっぽい
オプション | 型 | 内容 |
---|---|---|
compressed | boolean | svgzに圧縮するかどうか |
coordinatePrecision | number(long) | 小数点以下の桁数 パスの精密度に影響 |
cssProperties | SVGCSSPropertyLocation | スタイル インラインスタイルにするかとか |
documentEncoding | SVGDocumentEncoding | svgファイルのエンコード |
DTD | SVGDTDVersion | SVGのバージョンSVGDTDVersion.SVG1_1 とか |
saveMultipleArtboards | boolean | アートボードごとに保存するかどうかexportFile では必要だが、おそらく不要 |
その他 | いろいろ |
おわりに
Adobeのリファレンスについては、もっと扱いやすいようにしてほしさがある
また今回のスクリプトだけでは利点は特にないが、他のスクリプトと組み合わせて楽に仕事をしたい