DTP駆け込み寺
  1. [19879] InDesignスクリプトでの字形の置換 青山一丁目 2019/02/24 13:10
    1. [19880] Re: InDesignスクリプトでの字形の置換 . 2019/02/25 10:28
      1. [19882] Re^2: InDesignスクリプトでの字形の置換 青山一丁目 2019/02/25 14:37
        1. [19884] Re^3: InDesignスクリプトでの字形の置換 . 2019/02/25 17:23
    2. [19883] Re: InDesignスクリプトでの字形の置換 -e 2019/02/25 17:04
      1. [19885] Re^2: InDesignスクリプトでの字形の置換 青山一丁目 2019/02/25 21:40
      2. [19886] Re^2: InDesignスクリプトでの字形の置換 青山一丁目 2019/02/26 10:43
        1. [19887] Re^3: InDesignスクリプトでの字形の置換 -e 2019/02/26 11:41
          1. [19888] Re^4: InDesignスクリプトでの字形の置換 青山一丁目 2019/02/26 14:39
            1. [19889] Re^5: InDesignスクリプトでの字形の置換 (z-) 2019/02/26 18:19
              1. [19890] Re^6: InDesignスクリプトでの字形の置換 . 2019/02/27 09:23
                1. [19891] Re^7: InDesignスクリプトでの字形の置換 青山一丁目 2019/02/27 11:13
                  1. [19892] Re^8: InDesignスクリプトでの字形の置換 -e 2019/02/27 11:44
                    1. [19893] Re^9: InDesignスクリプトでの字形の置換 青山一丁目 2019/02/27 16:14
                      1. [19894] Re^10: InDesignスクリプトでの字形の置換 . 2019/02/27 17:01
                        1. [19895] Re^11: InDesignスクリプトでの字形の置換 -e 2019/02/27 17:11
                          1. [19896] Re^12: InDesignスクリプトでの字形の置換 青山一丁目 2019/02/27 19:01
                            1. [19897] Re^13: InDesignスクリプトでの字形の置換 -e 2019/02/28 09:06
                              1. [19898] Re^14: InDesignスクリプトでの字形の置換 . 2019/02/28 09:31
                                1. [19900] Re^15: InDesignスクリプトでの字形の置換 青山一丁目 2019/02/28 17:43
                              2. [19899] Re^14: InDesignスクリプトでの字形の置換 青山一丁目 2019/02/28 17:38

[ 返信 ]

InDesignスクリプトでの字形の置換

はじまして 青山一丁目と申します
当方、Windows7 InDesignCC2017を使用しています
サイトで先輩方のサンプルを参考にしながら
字形の置換のスクリプトを下記のように書いてみましたが
どうも動きません
初心者のためどこがどう間違っているのかが分かりません
ご教授いただけたら幸いです
よろしくお願いいたします

//プロパティの初期化
app.findTextPreferences.findWhat = NothingEnum.nothing;
app.changeTextPreferences.changeTo = NothingEnum.nothing;

//検索条件
app.findGlyphPreferences.appliedFont = app.fonts.item("I-OTFゴシックオールドPro " + " "+"L");
app.findGlyphPreferences.glyphID = 7555;
//置換設定
app.changeGlyphPreferences.appliedFont = app.fonts.item("I-OTFゴシックオールドPro " + " "+"L");
app.changeGlyphPreferences.glyphID = 11039;

//選択範囲
var text = app.activeDocument.selection;
for(var i = 0; i < text.length; i++) {
text[i].changeGlyph();
}

[19879] 青山一丁目 (2019/02/24 Sun 13:10) mail

[ 返信 ]


Re: InDesignスクリプトでの字形の置換

> app.findGlyphPreferences.appliedFont = app.fonts.item("I-OTFゴシックオールドPro " + " "+"L");

Proの後ろにスペースがあるなら取ってみてください。
フォント名とウェイトの間は、間違いなくタブですよね?

[19880] . (2019/02/25 Mon 10:28)

[ 返信 ]


Re^2: InDesignスクリプトでの字形の置換

ありがとうございます

はい タブを入れております

15行目
text[i].changeGlyph(); で止まってしまいます

[19882] 青山一丁目 (2019/02/25 Mon 14:37) mail

[ 返信 ]


Re^3: InDesignスクリプトでの字形の置換

>Proの後ろにスペースがあるなら取ってみてください。

で、こっちは?

[19884] . (2019/02/25 Mon 17:23)

[ 返信 ]


Re: InDesignスクリプトでの字形の置換

試しにやってみました。
フォントと字形が異なりますが、以下は動くのでフォント名が違うのでは?
var theFont=app.fonts.item("A-OTF 新ゴ Pro EL");
app.findGlyphPreferences.appliedFont = theFont;
app.findGlyphPreferences.glyphID = 1400; //怪
//置換設定
app.changeGlyphPreferences.appliedFont = theFont;
app.changeGlyphPreferences.glyphID = 1505; //乾

↓を実行してコンソールに表示されるフォント名をコピーして使ってみてください。
$.writeln(app.findGlyphPreferences.appliedFont.name);
$.writeln(app.changeGlyphPreferences.appliedFont.name);

ちなみにこの場合は下の部分は関係しないプロパティです。
app.findTextPreferences.findWhat = NothingEnum.nothing;
app.changeTextPreferences.changeTo = NothingEnum.nothing;

[19883] -e (2019/02/25 Mon 17:04)

[ 返信 ]


Re^2: InDesignスクリプトでの字形の置換

ありがとうございます

さっそく明日出社したらやってみます

[19885] 青山一丁目 (2019/02/25 Mon 21:40)

[ 返信 ]


Re^2: InDesignスクリプトでの字形の置換

おはようございます

さっそく
フォント名もコンソールに表示されたものをコピーして
やってみましたが
やっぱり text[i].changeGlyph(); のところで止まってしまいました
実行してみたものは以下のものです

//プロパティの初期化
app.findTextPreferences.findWhat = NothingEnum.nothing;
app.changeTextPreferences.changeTo = NothingEnum.nothing;

var theFont=app.fonts.item("I-OTFゴシックオールドPro L");
app.findGlyphPreferences.appliedFont = theFont;
//置換設定
app.findGlyphPreferences.glyphID =7555;
app.changeGlyphPreferences.appliedFont = theFont;
app.changeGlyphPreferences.glyphID =11039;
//選択範囲
var text = app.activeDocument.selection;
for(var i = 0; i < text.length; i++) {
    text[i].changeGlyph();
}

[19886] 青山一丁目 (2019/02/26 Tue 10:43) mail

[ 返信 ]


Re^3: InDesignスクリプトでの字形の置換

やっぱりフォント名意外に考えにくいですね。
以下を実行して、(以下の場合は新ゴProが入っていないとダメです。システムに入っているフォントで試してください)
コンソールが正常にフォント名を表示すれば、正しく設定されています。
わざわざスペースとタブを変数にしているのは、こうしないと掲示板上ではタブがスペースに変換されてしまうのとどこがスペースで、どこがタブになっているかを明示するためです。

app.findGlyphPreferences=NothingEnum.nothing;
app.changeGlyphPreferences=NothingEnum.nothing;

var s=" ";
var t="\t";
var theFont=app.fonts.item("A-OTF"+s+"新ゴ"+s+"Pro"+t+"EL");
app.findGlyphPreferences.appliedFont = theFont;

app.findGlyphPreferences.glyphID = 1400; //怪
//置換設定
app.changeGlyphPreferences.appliedFont = theFont;
app.changeGlyphPreferences.glyphID = 1505; //乾

$.writeln(app.findGlyphPreferences.appliedFont.name);
$.writeln(app.changeGlyphPreferences.appliedFont.name);

[19887] -e (2019/02/26 Tue 11:41)

[ 返信 ]


Re^4: InDesignスクリプトでの字形の置換

いろいろとありがとうございます

いただいたスクリプトは正常に処理してくれました
おっしゃるようにフォント名の問題ですね

クライアントがこのイワタの書体指定で
変更が利かないものですので
イワタに問い合わせてみます

分かりやすいスクリプトまでいただいて恐縮です

また、分からないことがあれば。。。
分からないことだらけなんですが
宜しくお願いします

イワタの件は分かったら返信いたします

[19888] 青山一丁目 (2019/02/26 Tue 14:39) mail

[ 返信 ]


Re^5: InDesignスクリプトでの字形の置換

手元(職場環境)にイワタ書体がないので試せないのですが、
検索まではうまくいくのでしょうか?
問題になっているのが検索(フォント名)か、置換(グリフ変換)か
そこまで切り分ければ解決が早まるかと思う気がしないでもないです。

投稿[19886]のコードの最後を
var text = app.activeDocument.selection;
text[0].findText().select();

にして実行してみて、I-OTFゴシックオールドPro L のテキストが選択されるかどうか。

[19889] (z-) (2019/02/26 Tue 18:19)

[ 返信 ]


Re^6: InDesignスクリプトでの字形の置換

そうそう、Lは半角にしてね。

[19890] . (2019/02/27 Wed 09:23)

[ 返信 ]


Re^7: InDesignスクリプトでの字形の置換

おはようございます

後半の実行部分を差し替えてやってみましたが
text[0].findText().select();で止まってしました
コンソールにはI-OTF ゴシックオールド Pro Lが表示されてます

昨日いただいたスクリプトでは
モリサワの新ゴでちゃんと実行され
置換もされてましたので
やはり、書体名の問題ではないかと素人考えですが思います

[19891] 青山一丁目 (2019/02/27 Wed 11:13) mail

[ 返信 ]


Re^8: InDesignスクリプトでの字形の置換

試しにこれでやってみてください。
var s=" ";
var t="\t";
var theFont=app.fonts.item("I-OTF"+s+"ゴシックオールド"+s+"Pro"+t+"L");

[19892] -e (2019/02/27 Wed 11:44)

[ 返信 ]


Re^9: InDesignスクリプトでの字形の置換

ごめんなさい

今度もだめでしたぁ

[19893] 青山一丁目 (2019/02/27 Wed 16:14) mail

[ 返信 ]


Re^10: InDesignスクリプトでの字形の置換

改めて、最初から書きます。

一番最初の、青山一丁目さんが書いたものから、

fonts.item("I-OTFゴシックオールドPro " + " "+"L");
の部分2か所を
fonts.item("I-OTFゴシックオールドPro" + " "+"L");
に修正。
・Proの後ろのスペースをトル
・L(全角)をL(半角)に変更
但し、+に挟まれているのは、ダブルクォート挟まれたタブ。

で当方では動きます。

置換対象となっている文字列が検索対象のフォントになっていますか?
対象を選択していますか?
手動では正しくできますか?

[19894] . (2019/02/27 Wed 17:01)

[ 返信 ]


Re^11: InDesignスクリプトでの字形の置換

var t="\t";
var theFont=app.fonts.item("I-OTFゴシックオールドPro"+t+"L");
にすると動くという事ですね。
win版はコンソールに表示されるタブが半角スペースに変換されてしまうとか?

[19895] -e (2019/02/27 Wed 17:11)

[ 返信 ]


Re^12: InDesignスクリプトでの字形の置換

やはり動きませんでした

ますます分からなくなってきました。。。

修正したものは
以下のとおりで間違っていますでしょうか

//プロパティの初期化
app.findTextPreferences.findWhat = NothingEnum.nothing;
app.changeTextPreferences.changeTo = NothingEnum.nothing;

//検索条件
app.findGlyphPreferences.appliedFont = app.fonts.item("I-OTFゴシックオールドPro" + " "+"L");
app.findGlyphPreferences.glyphID = 7555;
//置換設定
app.changeGlyphPreferences.appliedFont = app.fonts.item("I-OTFゴシックオールドPro" + " "+"L");
app.changeGlyphPreferences.glyphID = 11039;

//選択範囲
var t="\t";
var theFont=app.fonts.item("I-OTFゴシックオールドPro"+t+"L");
for(var i = 0; i < text.length; i++) {
text[i].changeGlyph();
}

[19896] 青山一丁目 (2019/02/27 Wed 19:01) mail

[ 返信 ]


Re^13: InDesignスクリプトでの字形の置換

なにやら、むちゃくちゃになってますね。
ちゃんとスクリプトのどこがどんな動作をしているか考えましょう。

//プロパティの初期化
app.findGlyphPreferences = NothingEnum.nothing;
app.changeGlyphPreferences = NothingEnum.nothing;

var t="\t";
var theFont=app.fonts.item("I-OTFゴシックオールドPro"+t+"L");

//検索条件
app.findGlyphPreferences.appliedFont = theFont;
app.findGlyphPreferences.glyphID = 7555;
//置換設定
app.changeGlyphPreferences.appliedFont = theFont;
app.changeGlyphPreferences.glyphID = 11039;

//選択範囲
var text = app.activeDocument.selection;
for(var i = 0; i < text.length; i++) {
text[i].changeGlyph();
}

[19897] -e (2019/02/28 Thu 09:06)

[ 返信 ]


Re^14: InDesignスクリプトでの字形の置換

-eさんのを基にして

ExtendScript Toolkitが使えるなら、

var theFont=app.fonts.item("I-OTFゴシックオールドPro"+t+"L");

の所で止めて theFont の値がきちんと取得されているかを確認してください。

使えないなら、
この行の後ろに
alert(theFont.status);
を入れて、INSTALLEDが帰ってくればOK。

[19898] . (2019/02/28 Thu 09:31)

[ 返信 ]


Re^15: InDesignスクリプトでの字形の置換

ありがとうこざいます

きちんと取得されてます
実行されて置換もされました

感謝 感謝 申し上げます

[19900] 青山一丁目 (2019/02/28 Thu 17:43) mail

[ 返信 ]


Re^14: InDesignスクリプトでの字形の置換

ありがとうございます

ちゃんと実行されました

おっしゃるとおり
きちんとスクリプトの勉強しなくちゃだめですよね
考える土台の基本が分かっていないから
いろいろご指導いただいてもトンチンカンなことをやってしまう

でも、今回はご教授いただき最後までいきつくことができました
感謝 感謝 お礼申しあげます

[19899] 青山一丁目 (2019/02/28 Thu 17:38) mail