7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Illustratorのスクリーン用に書き出しを自動化

Last updated at Posted at 2018-07-12

都内でデザイナー職をやっています

目指すこと

Illustratorの『スクリーン用に書き出し』をスクリプトにやってもらい アートボードごとにSVGを書き出す

リファレンスを見る

https://www.adobe.com/devnet/illustrator/scripting.html
JavaScript、VB Script、AppleScript でのそれぞれのリファレンスが
PDF がダウンロードできるAdobe公式のページ

それはやばいものだった

  1. PDFである
    • あのAdobeぞ? Acrobat作っている Adobeぞ? なので仕方ない
  2. PDFにロックがかかっており、テキストのコピーすらできない
    • 英語のため、翻訳しようと思ったときに困る 英語が読めれば問題ないから仕方ない
    • コードもすべて写経しないといけない 写経は大事だから仕方ない
  3. スクリーン用に書き出し のスクリプトがない

仕方ない

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のリファレンスについては、もっと扱いやすいようにしてほしさがある
また今回のスクリプトだけでは利点は特にないが、他のスクリプトと組み合わせて楽に仕事をしたい

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?