Glyphをハイライトしてみよう

最終更新日

Comments: 5

ハイライトって便利ですよねぇ〜って書き出しは以前にもやった記憶があるわけですが、今回のは消えたグリフを追えってことらしいです。以前正規表現でハイライト当てた時はfindGrepPreferencesってやつをコントロールしたのですが、今回のはグリフですからfindGlyphPreferencesを使います。…ああ、終わってしまいました。以上です。
というわけにも行きません。続きはBlogで!

で、続きなんですが、まったく大したこと無くて素直なコーディングです。

var cd =app.activeDocument.conditions.add({
 indicatorColor : [20,140,255],
 indicatorMethod : ConditionIndicatorMethod.useHighlight
 });

var tg = app.activeDocument.fonts;
var dtct;

for (var i,j=0;j<tg.length;j++) {
 app.findGlyphPreferences = null;
 app.findGlyphPreferences.glyphID = 0;
 app.findGlyphPreferences.appliedFont = tg[j].fontFamily;
 app.findGlyphPreferences.fontStyle = tg[j].fontStyleName;
 dtct = app.activeDocument.findGlyph();
 for (i=0;i<dtct.length;i++) dtct[i].appliedConditions = [cd];
 }

missing GlyphってのはGlyphIDが0のキャラクタで代替されています。そいつを捕まえて表舞台へとひきづり出すのですが、グリフのことですからフォントが絡みます。一連の設定をフォントごとにfindGlyphして化けグリフのキャラクタをリストアップします。
リストが出来ればこっちのもの、characterにはappliedConditionsプロパティがありますから直接コンディションを設定することができます。
消去する場合は下の一行を実行してください。

app.activeDocument.conditions.everyItem().remove();

最後に、ら〜でぶちょう、ありがとう。代替フォントのチェックボックスと被ってますけど。技術的には面白いです。

ten_a

Graphic Designer, Scripter and Coder. Adobe Community Professional.

シェアする

5件のフィードバック

  1. いつも貴重な情報をありがとうございます。

    業務に役立たせていただいています。

    ひとつお尋ねしたいのですが、
    この記事で掲載されているコードですが、

    以前、掲載されていた以下のサイトのコードと比較すると
    http://chuwa.iobb.net/tech/archive/2015/08/glyph.html

    一つ目の for 文の最後の } から続く部分が追加されているようですが、なにか追加修正されたのでしょうか。

    お教えいただければ幸いです。

コメントを残す