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

0pt   2018-07-12 09:14
IT技術情報局

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

目指すこと

68747470733a2f2f71696974612d696d6167652d
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

68747470733a2f2f71696974612d696d6167652d
ここの画面での設定と同じ

document boolean 不明 trueにするのがよさそう?
artboards string 書き出し範囲のこと
01-50などと指定
省略はすべてのアートボードを出力
その他 不明
今後のリファレンスに期待
ExportForScreensOptionsWebOptimizedSVG

68747470733a2f2f71696974612d696d6167652d
この画面での設定と同じ

リファレンスの ExportOptionsSVG と同じ内容が書けるっぽい

compressed boolean svgzに圧縮するかどうか
coordinatePrecision number(long) 小数点以下の桁数
パスの精密度に影響
cssProperties SVGCSSPropertyLocation スタイル
インラインスタイルにするかとか
documentEncoding SVGDocumentEncoding svgファイルのエンコード
DTD SVGDTDVersion SVGのバージョン
SVGDTDVersion.SVG1_1とか
saveMultipleArtboards boolean アートボードごとに保存するかどうか
exportFileでは必要だが、おそらく不要
その他 いろいろ

おわりに

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

Source: Javascriptタグが付けられた新着投稿

   ITアンテナトップページへ
情報処理/ITの話題が沢山。