はじまして 青山一丁目と申します
当方、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
> app.findGlyphPreferences.appliedFont = app.fonts.item("I-OTFゴシックオールドPro " + " "+"L");
Proの後ろにスペースがあるなら取ってみてください。
フォント名とウェイトの間は、間違いなくタブですよね?
[19880] . (2019/02/25 Mon 10:28)
ありがとうございます
はい タブを入れております
15行目
text[i].changeGlyph(); で止まってしまいます
[19882] 青山一丁目 (2019/02/25 Mon 14:37) mail
>Proの後ろにスペースがあるなら取ってみてください。
で、こっちは?
[19884] . (2019/02/25 Mon 17:23)
試しにやってみました。
フォントと字形が異なりますが、以下は動くのでフォント名が違うのでは?
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)
ありがとうございます
さっそく明日出社したらやってみます
[19885] 青山一丁目 (2019/02/25 Mon 21:40)
おはようございます
さっそく
フォント名もコンソールに表示されたものをコピーして
やってみましたが
やっぱり 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
やっぱりフォント名意外に考えにくいですね。
以下を実行して、(以下の場合は新ゴ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)
いろいろとありがとうございます
いただいたスクリプトは正常に処理してくれました
おっしゃるようにフォント名の問題ですね
クライアントがこのイワタの書体指定で
変更が利かないものですので
イワタに問い合わせてみます
分かりやすいスクリプトまでいただいて恐縮です
また、分からないことがあれば。。。
分からないことだらけなんですが
宜しくお願いします
イワタの件は分かったら返信いたします
[19888] 青山一丁目 (2019/02/26 Tue 14:39) mail
手元(職場環境)にイワタ書体がないので試せないのですが、
検索まではうまくいくのでしょうか?
問題になっているのが検索(フォント名)か、置換(グリフ変換)か
そこまで切り分ければ解決が早まるかと思う気がしないでもないです。
投稿[19886]のコードの最後を
var text = app.activeDocument.selection;
text[0].findText().select();
にして実行してみて、I-OTFゴシックオールドPro L のテキストが選択されるかどうか。
[19889] (z-) (2019/02/26 Tue 18:19)
そうそう、Lは半角にしてね。
[19890] . (2019/02/27 Wed 09:23)
おはようございます
後半の実行部分を差し替えてやってみましたが
text[0].findText().select();で止まってしました
コンソールにはI-OTF ゴシックオールド Pro Lが表示されてます
昨日いただいたスクリプトでは
モリサワの新ゴでちゃんと実行され
置換もされてましたので
やはり、書体名の問題ではないかと素人考えですが思います
[19891] 青山一丁目 (2019/02/27 Wed 11:13) mail
試しにこれでやってみてください。
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)
ごめんなさい
今度もだめでしたぁ
[19893] 青山一丁目 (2019/02/27 Wed 16:14) mail
改めて、最初から書きます。
一番最初の、青山一丁目さんが書いたものから、
fonts.item("I-OTFゴシックオールドPro " + " "+"L");
の部分2か所を
fonts.item("I-OTFゴシックオールドPro" + " "+"L");
に修正。
・Proの後ろのスペースをトル
・L(全角)をL(半角)に変更
但し、+に挟まれているのは、ダブルクォート挟まれたタブ。
で当方では動きます。
置換対象となっている文字列が検索対象のフォントになっていますか?
対象を選択していますか?
手動では正しくできますか?
[19894] . (2019/02/27 Wed 17:01)
var t="\t";
var theFont=app.fonts.item("I-OTFゴシックオールドPro"+t+"L");
にすると動くという事ですね。
win版はコンソールに表示されるタブが半角スペースに変換されてしまうとか?
[19895] -e (2019/02/27 Wed 17:11)
やはり動きませんでした
ますます分からなくなってきました。。。
修正したものは
以下のとおりで間違っていますでしょうか
//プロパティの初期化
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
なにやら、むちゃくちゃになってますね。
ちゃんとスクリプトのどこがどんな動作をしているか考えましょう。
//プロパティの初期化
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)
-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)
ありがとうこざいます
きちんと取得されてます
実行されて置換もされました
感謝 感謝 申し上げます
[19900] 青山一丁目 (2019/02/28 Thu 17:43) mail
ありがとうございます
ちゃんと実行されました
おっしゃるとおり
きちんとスクリプトの勉強しなくちゃだめですよね
考える土台の基本が分かっていないから
いろいろご指導いただいてもトンチンカンなことをやってしまう
でも、今回はご教授いただき最後までいきつくことができました
感謝 感謝 お礼申しあげます
[19899] 青山一丁目 (2019/02/28 Thu 17:38) mail