文字スタイルのテキスト抽出

[9117]文字スタイルのテキスト抽出 投稿者:pikapika 投稿日:2017/01/30 13:40:29
InDesign5.0をWin7で動かしています。

文字スタイルの「type」のテキストを抽出したいのですが、うまくテキストを抽出できません。
検索ではだけなのでしょうか?

[object TextStyleRange]です。と言う結果が出ます。

本来

「この文章は Letter です。」

の Letter に文字スタイル「type」を付けており、結果は「Letter」と表示させたいのです。
どう修正すればいいかご教示ください。
よろしくお願いします。

・・・・・・・・・・・・・・・・・
app.findTextPreferences=NothingEnum.nothing; // 検索・置換をクリア
app.changeTextPreferences=NothingEnum.nothing;
var doc=app.activeDocument;
app.findTextPreferences.appliedCharacterStyle=doc.characterStyles.itemByName('type'); // 文字スタイルを検索条件に指定
var rep=doc.findText(); // 検索のみ実施

alert(rep+"です");
・・・・・・・・・・・・・・・・・
[9118]Re: 文字スタイルのテキスト抽出 投稿者:お~まち 投稿日:2017/01/30 19:56:08
findTextの戻り値は「Array(Text)」つまりテキストオブジェクトの配列です。
従って、テキストオブジェクトからその中にある文字列を取り出す必要があります。
[9119]Re: 文字スタイルのテキスト抽出 投稿者:pikapika 投稿日:2017/01/31 09:20:40
ご教示ありがとうございます。
質問の書き方が悪かったようで申し訳ございません。

テキストオブジェクトからその中にある文字列を取り出す様な関数があるのでしょうか?

テキストオブジェクトから特定の文字スタイルが付いた文字列を取り出したい。
です。よろしくお願いします。
[9120]Re: 文字スタイルのテキスト抽出 投稿者:お~まち 投稿日:2017/01/31 13:00:12
テキストオブジェクトのプロパティをご存じない?
では我田引水ですがこれを。
http://indesign.cs5.xyz/dom/Text.html

********************

やっぱり答え書いておきます。
> var rep=doc.findText(); // 検索のみ実施
に続けて
var rep_strings = "";
for(i=0;i<rep.length;i++){
rep_strings += rep[i].contents + ", ";
}
alert(rep_strings);
というような感じです。ただこれだと最後に「, 」がついてくるので、そこは読み飛ばすか削除するコードを書くかしてください。
[9121]Re: 文字スタイルのテキスト抽出 投稿者:pikapika 投稿日:2017/01/31 14:33:38
もう少し勉強してみます。
答えを書いていただいて助かりました。

URLを見ましたが、こらから答えは出せませんでした。
ありがとうございました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア