リンクをクリップボードにコピー
コピー完了
こんにちは。
連番名の複数SVGファイルを各レイヤーとして一つのAIファイルとしてまとめたいと思っています。
Adobe Photoshopではファイル→スクリプト→ファイルをレイヤーとして読み込みで可能です。
しかし、Photoshopでは、ベクターデータとしての編集が不便なので、できればIllustratorで同様のことができればいいと思っています。
数ファイルならコピペで対応可能ですが、数十ファイルとなると手間なのでスクリプトなどがあれば無料、有料含めて教えていただきたいです。
よろしくお願いします。
参考にした記事
macOS 15.3.1
illustrator 29.3.1
エモくない内容(フィルタリングやエラー処理をしないもの)でよければささっと書いちゃうか、と思って
ちょっと書いてみたんですが、
document.placedItems.add(svgファイル) だとドキュメント上に実体が出てきませんね…
1つずつ開いてコピペ、をループでやる形しかないのかな。
var doc = app.activeDocument;
var svgs = File.openDialog("svgファイルを選択しなければ", true, true);
for(var i = 0; i < svgs.length; i++){
var newLayer = doc.layers.add();
doc.activeLayer = newLayer;
app.open(svgs[i]);
app.executeMenuCommand("unlockAll");
app.executeMenuCommand("selectall");
app.executeMenuCommand("copy");
app.active
...
リンクをクリップボードにコピー
コピー完了
エモくない内容(フィルタリングやエラー処理をしないもの)でよければささっと書いちゃうか、と思って
ちょっと書いてみたんですが、
document.placedItems.add(svgファイル) だとドキュメント上に実体が出てきませんね…
1つずつ開いてコピペ、をループでやる形しかないのかな。
var doc = app.activeDocument;
var svgs = File.openDialog("svgファイルを選択しなければ", true, true);
for(var i = 0; i < svgs.length; i++){
var newLayer = doc.layers.add();
doc.activeLayer = newLayer;
app.open(svgs[i]);
app.executeMenuCommand("unlockAll");
app.executeMenuCommand("selectall");
app.executeMenuCommand("copy");
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
app.executeMenuCommand("paste");
app.executeMenuCommand("deselectall");
}
既存の開かれたドキュメントがある状態で実行、
ファイル選択ダイアログが出るので複数のファイルを選択(フィルタリングしていません)
ループ{
レイヤーを1つ追加してアクティブに
選択された i 個めのファイルを開く、すべてを選択、コピー、保存せず閉じる
(元のドキュメント上に)ペースト、選択を解除
}
という内容です。既存ドキュメントありきなので新規ドキュメントの場合は最初からある「レイヤー 1」が出番なしとなります。
こまかい要望があれば追記してみてください。
リンクをクリップボードにコピー
コピー完了
リンクをクリップボードにコピー
コピー完了
あっ、動画のほうでわかりました。
エディタにルーラー(定規)がついていることから、現状リッチテキストフォーマットになっているようです。
テキストエディット.app メニュー「フォーマット」から「標準テキストにする」してからペースト&保存してみてください。
標準テキストはプレーンテキストとも呼ばれ、スクリプトファイルはこちらで保存しないと動きませんです。
リンクをクリップボードにコピー
コピー完了
リンクをクリップボードにコピー
コピー完了
SVGの配置は処理が特殊でSVGを認識したらページオブジェクトに落とす処理がかかります。スクリプトからはこの処理を通せなくて弾かれます。
おそらくアクション経由なら大丈夫なのでSVG読み込むところだけアクションコードを噛ませる形でスクリプトを書くことは出来ると思います。
リンクをクリップボードにコピー
コピー完了
Ten Aさん
アドバイスありがとうございます。ajabon grinsmith氏が書いてくださったスクリプトで希望の処理が行えました。
1)事前にイラレ形式で読み込んだ01番のSVGを保存する必要がある
2)SVGファイルを全部イラレで開いておく必要がある
等、準備がありますが、時短の目的は達せられました。
リンクをクリップボードにコピー
コピー完了
あ、ご満足のところ蒸し返してすみません
> 1)事前にイラレ形式で読み込んだ01番のSVGを保存する必要がある
> 2)SVGファイルを全部イラレで開いておく必要がある
手元に手頃なSVGファイルがなかったため、手前味噌でIllustratorで作成・保存したSVGファイルを相手に動作確認をしたのですが、よそでできたSVGでは「ダイアログ上でファイル選択」の流れでは動作しないということでしょうか?