開いているIllustratorのドキュメントを、指定したフォルダーへPNG・JPEG・SVGのいずれかで書き出すJSXです。デスクトップへ出す場合も保存先を選べます。同名の出力があれば、上書きせず停止します。
2026年10月3日にコードと説明を改修しました。
掲載例はコピーしたデータで試し、レイヤー構造、重なり順、外観、書き出し結果を確認してから使ってください。
2026年10月16日に、Windows 11 Pro上のIllustrator 30.8.2で、PNG・倍率100%の設定のまま掲載コードを実行し、PNGの書き出しと、同名ファイルがあるときの停止を確かめました。
JPEG・SVGと、100%以外の倍率は確かめていません。
結果は「Windows実機で確かめた結果(2026年10月16日)」にまとめています。
標準機能とスクリプトの使い分け
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入門を参照してください。各コードは別々のファイルとして実行します。
Windows実機で確かめた結果(2026年10月16日)
Windows 11 Pro(10.0.26200)のAdobe Illustrator 30.8.2(日本語版)で確かめました。
掲載コードはFORMATがPNG、SCALEが100のまま書き換えずに保存し、「ファイル」→「スクリプト」→「その他のスクリプト」から実行しました。
試したのは、幅200pt・高さ120ptのアートボードが1つあるRGBの自作ファイルです。
アートボードの内側に青い長方形(60×40pt)を、アートボードの外側に赤い長方形(60×40pt)を置き、文字は入れていません。
ファイルの用意は自動処理で行い、スクリプトの起動と出力先のフォルダー選択は画面で操作しました。
| 確かめたこと | 結果 |
|---|---|
| 1回目の実行 | 「書き出し処理が戻りました。」の通知が出て、選んだフォルダーにPNGが1つ作られた |
| ファイル名 | 元のファイル名から.aiを除き、.pngを付けた名前になった |
| 画像の大きさ | 200×120px(アートボードの200×120ptと同じ数値) |
| 背景 | 角の画素は完全に透明(RGBAで0,0,0,0) |
| 青い長方形 | RGBAで0,91,172,255(塗りに指定したR0・G91・B172と同じ値) |
| アートボードの外 | 赤い長方形は含まれなかった(不透明な赤の画素は0) |
| 同じフォルダーへ2回目の実行 | 「同名ファイルがあるため上書きしません」と表示されて止まり、既存のPNGはハッシュ値も更新日時も変わらなかった |
| 元のAIファイル | ハッシュ値も更新日時も変わらなかった |
PNGの大きさと画素の値は、書き出したファイルを読み取って確かめたもので、画像ビューアーでの表示は確認に含めていません。
書き出しの後、Illustrator上の文書は未保存の扱いになりましたが、2つの長方形の位置・色とアートボードは変わっていませんでした。
確かめていない範囲
確かめたのは、PNG・倍率100%・アートボード1つ・図形2つの条件での書き出しと、同じフォルダーへ再実行したときの停止だけです。
JPEG・SVG、100%以外の倍率、文字を含むファイル、複数のアートボード、Macでの動作は試していません。
書き出しの途中で失敗した場合や、出力先に書き込めない場合の動作も確かめていません。
同名ファイルと失敗時の扱い
既存の同名出力を検出したら停止します。別のアプリや同期処理が保存の瞬間に同名を作る状況までは排他的に防げないため、同じ出力先を並行利用しないでください。書き出しの途中で失敗しても、不完全な出力を自動削除しません。出力先を確認し、必要なら退避してから再試行します。
2026年10月3日に、ドキュメントを確認する前のactiveDocument参照、.aiを含む出力名、JPEG・PNGのresolution、SVGへartBoardClippingを指定する旧例を見直しました。過去のGitHub版は本文と一致するとは限りません。
参照資料
標準機能はAdobeのアートワークの書き出しを参照。APIはAdobe資料をもとに維持されているJPEG、PNG24、SVGの参照ページも案内します。
よくある質問:JSXでPNG・JPEG・SVGを書き出す
このJSXは、何をするものですか?
開いているIllustratorのドキュメントを、指定したフォルダーへPNG・JPEG・SVGのいずれかで書き出すJSXです。デスクトップへ出す場合も、保存先を選べます。同名の出力があれば、上書きせず停止します。
標準機能とは、どう使い分けますか?
1回だけ設定を変えて書き出す場合は「書き出し形式」、複数アートボードや倍率別の素材を作る場合は「スクリーン用に書き出し」が候補です。この記事は、同じコードの設定で1回ずつ出力する例です。フォルダー内のAIをまとめて変換する用途は、「PDF一括変換」の記事を参照してください。
形式ごとの設定は、どうなっていますか?
PNGはアクティブなアートボードでクリップし、透明背景、倍率100%です。JPEGはアクティブなアートボードでクリップし、白背景、品質90、倍率100%です。SVGは旧来のexportFileによる出力で、artBoardClippingは設定しません。アートボード単位の切り抜き用途は、標準の書き出しで範囲を指定します。
倍率や解像度は、どう指定しますか?
JPEG・PNGの倍率は、horizontalScaleとverticalScaleで指定します。100%なら72ptの長さがおおむね72px、200%ならおおむね144pxとなる考え方です。端数や境界の丸めは、出力寸法で確認します。ExportOptionsPNG24やExportOptionsJPEGへresolutionという値を足しても、このAPIの解像度指定として扱う根拠はありません。
SVGで書き出すときの注意点はありますか?
記事のSVGは、画像を埋め込み、書き出し時の文字をアウトラインとして扱う設定例です。元のAIに文字を残し、SVG側の編集性やアクセシビリティ、容量も用途に合わせて確認します。フォント埋め込みの可否・ライセンスを一律に保証する設定ではありません。SVGの設定比較は、関連記事を参照してください。
実行前に、何を準備しますか? どう実行しますか?
元のAIを保存し、コピーしたデータで試します。FORMATをPNG・JPEG・SVGのいずれかにして、JPEG・PNGの倍率を変える場合はSCALEを変更します。JPEG・PNGでは出力したいアートボードをアクティブにします(複数アートボードの一括出力は、このコードの対象外です)。コードをUTF-8のテキストで保存し、拡張子を.jsxにして、「ファイル」→「スクリプト」→「その他のスクリプト」から選び、出力先を選びます。出力名は、元の名前.aiから拡張子を除き、出力形式の拡張子を付けます。出力を開いて、ピクセル寸法、透明部分、色、文字、アートボード外の含有を照合してください。
同名のファイルがあるときや、途中で失敗したときは、どうなりますか?
既存の同名出力を検出したら停止します。別のアプリや同期処理が保存の瞬間に同名を作る状況までは排他的に防げないため、同じ出力先を並行利用しないでください。書き出しの途中で失敗しても、不完全な出力を自動削除しません。出力先を確認し、必要なら退避してから再試行します。
掲載コードは、実際のIllustratorで動作確認されていますか?
2026年10月3日にコードと説明を改修したものです。
このとき、ドキュメントを確認する前のactiveDocument参照、.aiを含む出力名、JPEG・PNGのresolution、SVGへartBoardClippingを指定する旧例を見直しました。
2026年10月16日に、Windows 11 Pro上のIllustrator 30.8.2で、PNG・倍率100%の設定のまま「その他のスクリプト」から実行し、PNGの書き出しと、同名ファイルがあるときの停止を確かめました。
JPEG・SVG、100%以外の倍率、文字や複数のアートボードを含むファイル、Macでの動作は確かめていません。
過去のGitHub版は、本文と一致するとは限りません。
掲載例はコピーしたデータで試し、結果を確認してから使ってください。
最新は、Adobeのアートワークの書き出しなどの公式資料で確認してください。

コメント