リンクをクリップボードにコピー
コピー完了
.aiファイルに使用中のフォント名を
こちらのスクリプトを使ってテキストで書き出しました。
https://sttk3.com/blog/tips/illustrator/document-fonts.html
添付画像のように
Adobeフォントは5桁の識別番号が書き出され、フォント名が取得できません。
どのようにすればフォント名を取得できるでしょうか?
また、無理そうならIDとフォント名を検索置換しようと思いますが
一覧として配布されてものはあるでしょうか?
3 件の正解
こちらのスクリプトをすこしだけ改変してみました。
1. aiファイルを開いてスクリプトを実行する
2. アラートが表示され、使用フォントがローカライズ名で表示される(コピペできる)
※フォントがインストールされていなくても、ファイル保存をしなければちゃんとローカライズ名を取得できます。(ファイル保存をすると英語の長たらしい名称になってしまいます)
// load XMP Library
function loadXMPLibrary() {
if (!ExternalObject.AdobeXMPScript) {
try {
ExternalObject.AdobeXMPScript = new ExternalObj
...
冒頭のスクリプトは、次の理由でフォントファイル名を取得するようになっています。
- フォント管理アプリに登録するのにフォントファイルを指定することが多く、それがわかったほうが便利だった
- 合成フォントの構成内容のフォント名を、スクリプトで取得できなかった
現在、合成フォントの構成内容のフォント名を取得するルートを開拓したので、フォント名(PostScript名)を返すバージョンを作ってみました(自分の環境、macOS/WindowsのIllustrator 2024〜2025で動くことを確認)。
また、ソースコード中のneedReplaceToDisplayNameをtrueにすると、(対象のIllustratorの環境で認識したフォントなら)日本語など読みやすい名前を出力する動作に変わります。試してみてください。
Tauri製クロスプラットフォームアプリにし、Illustratorファイルをまとめてドロップして使用フォント一覧を取得できるバージョンも作ってみました。
リンクをクリップボードにコピー
コピー完了
そのスクリプトは、フォント名ではなく、フォントファイル名を取得するものです。
Adobe Fontsの5桁の数字は、そういうファイル名になっているだけです。
スクリプトが参照している情報は、Illustratorのメニュー「ファイル > ファイル情報....」の「Rowデータ」で確認できます。Adobe Fontsのフォントもちゃんとフォント名が記録されています。
これを調べてフォント名を取得するようにスクリプトを改造してみるのも良いでしょう。
リンクをクリップボードにコピー
コピー完了
正常な動作で5桁数字なのですね。ご教示ありがとうございます。
スクリプト改造はエラーが出まくっていますが、正月休みの課題とします。
何に使うのか全く意味がわからないのですが
約10年分の制作物ごとに使用フォントリストを作る羽目になり
なんとか自動化できないかと足掻いているところでした。
リンクをクリップボードにコピー
コピー完了
こちらのスクリプトをすこしだけ改変してみました。
1. aiファイルを開いてスクリプトを実行する
2. アラートが表示され、使用フォントがローカライズ名で表示される(コピペできる)
※フォントがインストールされていなくても、ファイル保存をしなければちゃんとローカライズ名を取得できます。(ファイル保存をすると英語の長たらしい名称になってしまいます)
// load XMP Library
function loadXMPLibrary() {
if (!ExternalObject.AdobeXMPScript) {
try {
ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
} catch (e) {
alert('Unable to load the AdobeXMPScript library!');
return false;
}
}
return true;
}
// unload XMP Library
function unloadXMPLibrary() {
if (ExternalObject.AdobeXMPScript) {
try {
ExternalObject.AdobeXMPScript.unload();
ExternalObject.AdobeXMPScript = undefined;
} catch (e) {
alert('Unable to unload the AdobeXMPScript library!');
}
}
}
// list used fonts
function list_fonts () {
var doc = app.activeDocument;
var fontsInfo = [];
loadXMPLibrary ();
fontsInfo.push (getFontsInfo (doc.fullName));
unloadXMPLibrary ();
var info = fontsInfo.join ('\n\n');
return info;
}
// search used fonts
function getFontsInfo(file) {
var arr = [],
xmpFile,
oXmp,
fontNumber,
i,
path,
fontname,
fonttype,
ns = 'http://ns.adobe.com/xap/1.0/t/pg/';
xmpFile = new XMPFile(file.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ);
oXmp = xmpFile.getXMP();
fontNumber = oXmp.countArrayItems(ns, 'xmpTPg:Fonts');
xmpFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);
if (fontNumber) {
for (i = 1; i <= fontNumber; i++) {
path = XMPUtils.composeArrayItemPath(ns, 'xmpTPg:Fonts', i);
fontFamily = oXmp.getStructField(ns, path, XMPConst.TYPE_FONT, 'fontFamily');
fontFace = oXmp.getStructField(ns, path, XMPConst.TYPE_FONT, 'fontFace');
arr.push([fontFamily, '-', fontFace].join(''));
}
}
return arr.join('\n');
}
//実行
w0=new Window("dialog", "使用フォント");
w0.add("edittext",[0,0,300,250],list_fonts(),{multiline:true})
w0.add("button",undefined,"OK")
w0.show()
//Windowsでコピペできない模様(Macならこれで良し)
//alert ("使用フォント: \n" + list_fonts ());
リンクをクリップボードにコピー
コピー完了
冒頭のスクリプトは、次の理由でフォントファイル名を取得するようになっています。
- フォント管理アプリに登録するのにフォントファイルを指定することが多く、それがわかったほうが便利だった
- 合成フォントの構成内容のフォント名を、スクリプトで取得できなかった
現在、合成フォントの構成内容のフォント名を取得するルートを開拓したので、フォント名(PostScript名)を返すバージョンを作ってみました(自分の環境、macOS/WindowsのIllustrator 2024〜2025で動くことを確認)。
また、ソースコード中のneedReplaceToDisplayNameをtrueにすると、(対象のIllustratorの環境で認識したフォントなら)日本語など読みやすい名前を出力する動作に変わります。試してみてください。
リンクをクリップボードにコピー
コピー完了
Tauri製クロスプラットフォームアプリにし、Illustratorファイルをまとめてドロップして使用フォント一覧を取得できるバージョンも作ってみました。

