Illustratorでフォント情報だけを、ほかのテキストに適用したい
2つのテキストがあり、テキストAのフォント(情報のみ)を、テキストBに適用したいことがあります。
スポイトツールオプションをがんばるとできそうですが、その度にオプションを変更するのは面倒です。をがんばっても、「フォントだけ」は参照・適用できません。
そこで、[最近使用したフォント]の出番ですが、リバウンドのためにOFFっているため使えません。
スクリプトで実現する
ChatGPTに相談したところ、次のJavaScriptで実現できました。
「このフォントにしたい」は、たいてい、ドキュメント内にそのフォントが存在しているため、[フォント]パネルでフォントリストを開かずにフォントを設定できるのはストレスフリーで、かつ、はかどります!!!
フォントを調べる
選択しているテキストオブジェクトがひとつだけのときに調べます。
// Adobe Illustrator ExtendScript (JavaScript)
// グローバル変数としてフォント名を一時保存
var savedFontName = null;
// テキストAを取得してフォントを保存
if (app.documents.length > 0 && app.selection.length === 1) {
var textA = app.selection[0];
// フォント名を取得し保存
savedFontName = textA.textRange.characterAttributes.textFont.name;
// alert("フォントが保存されました: " + savedFontName);
} else {
alert("1つのテキストオブジェクトを選択してください。");
}
フォントを適用する
複数のテキストオブジェクト
グループ化されたオブジェクト内のテキスト
// Adobe Illustrator ExtendScript (JavaScript)
// グローバル変数からフォントを取得して再帰的に適用
if (savedFontName !== null && app.documents.length > 0 && app.selection.length > 0) {
// 選択されたオブジェクトに対して処理を実行
for (var i = 0; i < app.selection.length; i++) {
applyFontToText(app.selection[i]);
}
alert("フォントが適用されました: " + savedFontName);
} else if (savedFontName === null) {
alert("フォントが保存されていません。最初にフォントを取得してください。");
} else {
alert("1つ以上のテキストオブジェクトを選択してください。");
}
// 再帰的にフォントを適用する関数
function applyFontToText(item) {
if (item.typename === "TextFrame") {
// テキストフレームにフォントを適用
item.textRange.characterAttributes.textFont = app.textFonts.getByName(savedFontName);
} else if (item.typename === "GroupItem") {
// グループ内のすべての子アイテムに対して再帰的に処理を実行
for (var j = 0; j < item.pageItems.length; j++) {
applyFontToText(item.pageItems[j]);
}
}
}
成功したときのalertには「//」を付けてOFFっておくとよさそうです。
// alert("フォントが保存されました: " + savedFontName);
// alert("フォントが適用されました: " + savedFontName);
車輪の再発明
偉人たちが取り組まれていました!!!
ダウンロード
Keyboard Maestroマクロ化しておきました。
ここから先は
0字
/
1ファイル
月に10-20本くらいの記事を投稿しています。定期購読されると、更新のお知らせを受け取ったり、マガジン限定記事やサンプルファイルをダウンロードできます。
購読を開始した月に更新された記事から読むことができます(初月無料)。
DTP Transit 定期購読マガジン
¥100 / 月
初月無料
マガジン限定記事やサンプルファイルをダウンロードできます。
定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5