開いているIllustratorのドキュメントを、指定したフォルダーへPNG・JPEG・SVGのいずれかで書き出すJSXです。デスクトップへ出す場合も保存先を選べます。同名の出力があれば、上書きせず停止します。
2026年10月3日にコードと説明を改修しました。掲載例はコピーしたデータで試し、レイヤー構造、重なり順、外観、書き出し結果を確認してから使ってください。現在の改修版について、Illustratorでの動作確認はまだ完了していません。
標準機能とスクリプトの使い分け
1回だけ設定を変えて書き出す場合は「書き出し形式」、複数アートボードや倍率別の素材を作る場合は「スクリーン用に書き出し」が候補です。この記事は同じコードの設定で1回ずつ出力する例です。フォルダー内のAIをまとめて変換する用途はPDF一括変換を参照してください。
出力形式と設定の範囲
| 形式 | 設定・範囲 |
|---|---|
| PNG | アクティブなアートボードでクリップ。透明背景、倍率100%。 |
| JPEG | アクティブなアートボードでクリップ。白背景、品質90、倍率100%。 |
| SVG | 旧来のexportFileによるSVG出力。artBoardClippingは設定しません。アートボード単位の切り抜き用途は標準の書き出しで範囲を指定します。 |
JPEG・PNGの倍率はhorizontalScaleとverticalScaleで指定します。100%なら72ptの長さがおおむね72px、200%ならおおむね144pxとなる考え方です。端数や境界の丸めは出力寸法で確認します。ExportOptionsPNG24やExportOptionsJPEGへresolutionという値を足しても、このAPIの解像度指定として扱う根拠はありません。
SVGは画像を埋め込み、書き出し時の文字をアウトラインとして扱う設定例です。元のAIに文字を残し、SVG側の編集性やアクセシビリティ、容量も用途に合わせて確認します。フォント埋め込みの可否・ライセンスを一律に保証する設定ではありません。SVGの設定比較も参照してください。
出力前の準備
- 元のAIを保存し、コピーしたデータで試す。
- 下のFORMATをPNG・JPEG・SVGのいずれかにする。JPEG・PNGの倍率を変える場合はSCALEを変更する。
- JPEG・PNGでは出力したいアートボードをアクティブにする。複数アートボードの一括出力はこのコードの対象外。
- JSXを実行して出力先を選ぶ。元の名前.aiから拡張子を除き、出力形式の拡張子を付けます。
- 出力を開き、ピクセル寸法、透明部分、色、文字、アートボード外の含有を照合する。
(function () {
var FORMAT = "PNG"; // PNG / JPEG / SVG
var SCALE = 100; // JPEGとPNGの倍率(%)
try {
if (app.documents.length === 0) throw new Error("ドキュメントを開いてください。");
var doc = app.activeDocument;
var folder = Folder.selectDialog("出力先を選択。デスクトップへ出す場合はデスクトップを選択");
if (!folder) return;
var base = File.decode(doc.name).replace(/\.(ai|ait)$/i, "");
base = base.replace(/[\\\/:*?"<>|]/g, "_").replace(/[. ]+$/g, "");
if (!base) base = "illustrator-export";
var ext, type, opts;
if (FORMAT === "PNG") {
ext = ".png"; type = ExportType.PNG24; opts = new ExportOptionsPNG24();
opts.artBoardClipping = true; opts.transparency = true; opts.antiAliasing = true;
opts.horizontalScale = SCALE; opts.verticalScale = SCALE;
} else if (FORMAT === "JPEG") {
ext = ".jpg"; type = ExportType.JPEG; opts = new ExportOptionsJPEG();
opts.artBoardClipping = true; opts.antiAliasing = true; opts.qualitySetting = 90;
opts.horizontalScale = SCALE; opts.verticalScale = SCALE;
opts.matte = true; var white = new RGBColor(); white.red=255; white.green=255; white.blue=255;
opts.matteColor = white;
} else if (FORMAT === "SVG") {
ext = ".svg"; type = ExportType.SVG; opts = new ExportOptionsSVG();
opts.compressed = false; opts.embedRasterImages = true;
opts.fontType = SVGFontType.OUTLINEFONT; opts.preserveEditability = false;
} else throw new Error("FORMATをPNG・JPEG・SVGから指定してください。");
var output = new File(folder.fsName + "/" + base + ext);
if (output.exists) throw new Error("同名ファイルがあるため上書きしません: " + output.fsName);
doc.exportFile(new File(folder.fsName + "/" + base), type, opts);
if (!new File(output.fsName).exists) throw new Error("想定した出力が見つかりません。フォルダーを確認してください。");
alert("書き出し処理が戻りました。出力を開いて範囲・サイズ・見た目を確認してください。\n"+output.fsName);
} catch(e) { alert(String(e)); }
}());JSXの保存と実行
コードをUTF-8のテキストで保存し、拡張子を.jsxにします。「ファイル」→「スクリプト」→「その他のスクリプト」から選びます。保存・実行の詳しい手順はJSX入門を参照してください。各コードは別々のファイルとして実行します。
同名ファイルと失敗時の扱い
既存の同名出力を検出したら停止します。別のアプリや同期処理が保存の瞬間に同名を作る状況までは排他的に防げないため、同じ出力先を並行利用しないでください。書き出しの途中で失敗しても、不完全な出力を自動削除しません。出力先を確認し、必要なら退避してから再試行します。
2026年10月3日に、ドキュメントを確認する前のactiveDocument参照、.aiを含む出力名、JPEG・PNGのresolution、SVGへartBoardClippingを指定する旧例を見直しました。過去のGitHub版は本文と一致するとは限りません。
参照資料
標準機能はAdobeのアートワークの書き出しを参照。APIはAdobe資料をもとに維持されているJPEG、PNG24、SVGの参照ページも案内します。

コメント