インデザインCS3のテキスト抽出

[4253]インデザインCS3のテキスト抽出 | 投稿者:ブルー | 投稿日:2010/02/23(Tue) 15:43:50
mac os X インデザインCS3のドキュメントから
テキストを抽出する方法ってありますか?
できればPDFなどに変換せず
インデザインのドキュメントから
テキストを書き出したり、
もしくはドキュメントをドラッグ&ドロップで
できたりなど、
よろしくおねがいいたします。
» 1
[4257]Re: インデザインCS3のテキスト抽出 | 投稿者:YUJI | 投稿日:2010/02/23(Tue) 18:56:02
ファイルメニューから「書き出し」コマンドを実行すれば、テキストに書き出せますよ。
ただし、書き出したいテキストフレーム内にカーソルをおいた状態で実行してください。
» 2
[4259]Re: インデザインCS3のテキスト抽出 | 投稿者:ブルー | 投稿日:2010/02/24(Wed) 10:05:15
ご返答ありがとうございます。
テキストの書き出しできました。
テキストフレームが一つならこれでいけるのですが、
複数のテキストフレームから一括でテキスト抽出する
方法ってありますか?
質問ばかりですがよろしくお願いいたします。
» 3
[4263]Re: インデザインCS3のテキスト抽出 | 投稿者:mg | 投稿日:2010/02/24(Wed) 13:03:15
書き出し後の用途と、
複数が何個だかわかりませんが、順番にテキストフレーム連結してはどうでしょうか?
» 4
[4266]Re: インデザインCS3のテキスト抽出 | 投稿者:小泉 | 投稿日:2010/02/24(Wed) 17:54:37
tell document 1 of application "Adobe InDesign CS2_J" to contents of stories as Unicode text

ASだとこれでできます。
ファイルに書き出すのと表中テキストの抽出をする場合は
もう少し処理が必要。
» 5
[4267]Re: インデザインCS3のテキスト抽出 | 投稿者:いき | 投稿日:2010/02/24(Wed) 19:38:31
mgさんにヒントをいただき、Javascriptで書いてみました。
あらかじめ任意のフォルダにexport.txtを置いておき、フルパスで指定することで動くのを確認しました。
私の環境:WindowsXP/InDesignCS3
小泉さんが仰るように、表の中身も書き出したいのでしたらもう一手間必要です。
テキストフレームが連結されていなくても書き出しますが、その場合、フレームの順番を厳密に指定した状態で書き出したければ、さらにもう一手間必要です。

var myObj = new File ("【パス名】export.txt");
var flag = myObj.open ("w");
if (flag == true){
var mytext = app.documents[0].stories.everyItem().contents;
myObj.writeln (mytext);
myObj.close();
}else{
alert ("書き込むためのファイルが開けません");
}
alert ("書き出しました");
» 6
[4270]Re: インデザインCS3のテキスト抽出 | 投稿者:ブルー | 投稿日:2010/02/25(Thu) 12:43:04
みなさまアドバイスありがとうございます。
» 7
[4291]Re: インデザインCS3のテキスト抽出 | 投稿者:ころっけ | 投稿日:2010/02/26(Fri) 14:57:51
Mac OS X 10.5.8
InDesign CS2

いつか必要になるかもしれないと思って、試してみたんですが、
JavaScriptだと、
ENスペースや1/4スペースといった特殊スペース類
はしご高といったSJISにない文字があるストーリーは
object.write()では書き出されませんね。

小泉さんのas Unicode textみたいなのが、JavaScriptにあればいいんですが。

そんなわけで、Macだと、全部のストーリーのコンテンツを連結したストリングを、
新規テキストボックスを作って流し込み、
それをテキスト書き出ししないとだめみたいです。
» 8
[4292]Re: インデザインCS3のテキスト抽出 | 投稿者:ころっけ | 投稿日:2010/02/26(Fri) 15:02:54
×そんなわけで、Macだと、
○そんなわけで、Mac-JavaScriptだと、
» 9
[4293]Re: インデザインCS3のテキスト抽出 | 投稿者:いき | 投稿日:2010/02/26(Fri) 15:10:34
ころっけさん、検証ありがとうございます。

もうひとつの手段として、inxファイルに書き出し、rubyスクリプトで置換する方法を提案しておきます。
http://d.hatena.ne.jp/k_iki/20100225

これだと表の中身も書き出しますが、セル毎に全部改行してしまいます。
また、テキストフレームの順番もばらばらなので、とりあえず処理した後で手作業で整形するしかありません。

手作業でフレームを連結するのとどっちがいいか、ということですよね(^^;
» 10
[4294]Re: インデザインCS3のテキスト抽出 | 投稿者:ころっけ | 投稿日:2010/02/26(Fri) 15:36:05
すいません、検索したらでてきました。

output.open("w")
output.encoding = "UTF-8";

こんなことできたんですね。
これで問題の文字も普通に書き出せました。

おっしゃるとおり、表の中見は別処理しなきゃならないですけどね。

>また、テキストフレームの順番もばらばらなので、とりあえず処理した後で手作業で整形するしかありません。

そこから先は料金が発生しますよ、と、クライアントに言いますw
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア