終了

書き出した使用フォント名が5桁の数字になる

エクスプローラー ,
Dec 23, 2024 Dec 23, 2024

リンクをクリップボードにコピー

コピー完了

.aiファイルに使用中のフォント名を

こちらのスクリプトを使ってテキストで書き出しました。

https://sttk3.com/blog/tips/illustrator/document-fonts.html

 

添付画像のように

Adobeフォントは5桁の識別番号が書き出され、フォント名が取得できません。

どのようにすればフォント名を取得できるでしょうか?

 

また、無理そうならIDとフォント名を検索置換しようと思いますが

一覧として配布されてものはあるでしょうか?

キーワード
読み込み、書き出し

表示

770

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines

correct answers 3 件の正解

Community Expert , Dec 26, 2024 Dec 26, 2024

https://community.adobe.com/t5/illustrator-discussions/a-javascript-for-showing-the-name-of-used-font/m-p/9806090?profile.language=en#M92411

こちらのスクリプトをすこしだけ改変してみました。

1. aiファイルを開いてスクリプトを実行する

2. アラートが表示され、使用フォントがローカライズ名で表示される(コピペできる)

 

※フォントがインストールされていなくても、ファイル保存をしなければちゃんとローカライズ名を取得できます。(ファイル保存をすると英語の長たらしい名称になってしまいます)

 

 

 

// load XMP Library
function loadXMPLibrary() {
         if (!ExternalObject.AdobeXMPScript) {
            try {
                ExternalObject.AdobeXMPScript = new ExternalObj
...

投票

翻訳

翻訳
Community Expert , Dec 28, 2024 Dec 28, 2024

冒頭のスクリプトは、次の理由でフォントファイル名を取得するようになっています。

  • フォント管理アプリに登録するのにフォントファイルを指定することが多く、それがわかったほうが便利だった
  • 合成フォントの構成内容のフォント名を、スクリプトで取得できなかった

 

現在、合成フォントの構成内容のフォント名を取得するルートを開拓したので、フォント名(PostScript名)を返すバージョンを作ってみました(自分の環境、macOS/WindowsのIllustrator 2024〜2025で動くことを確認)。

 

また、ソースコード中のneedReplaceToDisplayNameをtrueにすると、(対象のIllustratorの環境で認識したフォントなら)日本語など読みやすい名前を出力する動作に変わります。試してみてください。

 

投票

翻訳

翻訳
Community Expert , Jan 05, 2025 Jan 05, 2025

Tauri製クロスプラットフォームアプリにし、Illustratorファイルをまとめてドロップして使用フォント一覧を取得できるバージョンも作ってみました。

投票

翻訳

翻訳
Community Expert ,
Dec 23, 2024 Dec 23, 2024

リンクをクリップボードにコピー

コピー完了

そのスクリプトは、フォント名ではなく、フォントファイル名を取得するものです。

Adobe Fontsの5桁の数字は、そういうファイル名になっているだけです。

 

スクリプトが参照している情報は、Illustratorのメニュー「ファイル > ファイル情報....」の「Rowデータ」で確認できます。Adobe Fontsのフォントもちゃんとフォント名が記録されています。

これを調べてフォント名を取得するようにスクリプトを改造してみるのも良いでしょう。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Dec 26, 2024 Dec 26, 2024

リンクをクリップボードにコピー

コピー完了

正常な動作で5桁数字なのですね。ご教示ありがとうございます。

スクリプト改造はエラーが出まくっていますが、正月休みの課題とします。

 

何に使うのか全く意味がわからないのですが

約10年分の制作物ごとに使用フォントリストを作る羽目になり

なんとか自動化できないかと足掻いているところでした。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 26, 2024 Dec 26, 2024

リンクをクリップボードにコピー

コピー完了

https://community.adobe.com/t5/illustrator-discussions/a-javascript-for-showing-the-name-of-used-fon...

こちらのスクリプトをすこしだけ改変してみました。

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 ());

 

 

 

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Dec 28, 2024 Dec 28, 2024

リンクをクリップボードにコピー

コピー完了

冒頭のスクリプトは、次の理由でフォントファイル名を取得するようになっています。

  • フォント管理アプリに登録するのにフォントファイルを指定することが多く、それがわかったほうが便利だった
  • 合成フォントの構成内容のフォント名を、スクリプトで取得できなかった

 

現在、合成フォントの構成内容のフォント名を取得するルートを開拓したので、フォント名(PostScript名)を返すバージョンを作ってみました(自分の環境、macOS/WindowsのIllustrator 2024〜2025で動くことを確認)。

 

また、ソースコード中のneedReplaceToDisplayNameをtrueにすると、(対象のIllustratorの環境で認識したフォントなら)日本語など読みやすい名前を出力する動作に変わります。試してみてください。

 

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jan 05, 2025 Jan 05, 2025

リンクをクリップボードにコピー

コピー完了

最新

Tauri製クロスプラットフォームアプリにし、Illustratorファイルをまとめてドロップして使用フォント一覧を取得できるバージョンも作ってみました。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines