InDesign CS3自動化作戦 (InDesign CS3 Automation Operation)

選択されたテキストフレーム内の文字をファイルに書き出す

■プログラム説明(ソースコード説明)
 まず、書き出す先のファイルパスを指定しファイルオブジェクトを作成します。ファイルに書き出すのでopen("w")とします。結果がtrueの場合はファイルが作成できる、falseの場合は作成できない事になります。ファイルが作成できない場合にはアクセス権(パーミッション)を確認してください。また、同名のファイルが存在しており使用中の場合にも書き出せません。この場合は再起動が必要になる可能性もあります。
 選択されたフレームがテキストフレームと仮定して(それ以外だと駄目)処理します。選択されたテキストフレームの内容を書き出すにはcontents内の文字をファイルに書き出します。ファイルには改行コード付きで書き出すのでwriteln()を使います。改行コードが不要な場合にはwrite()を使ってください。データを書き出したらファイルをclose()で閉じます。


■ソースコード
fileObj = new File("Macintosh HD:0123.txt");
flag = fileObj.open("w");
if (flag)
{
selObj = app.activeDocument.selection;
for (i=0; i<selObj.length; i++)
{
fileObj.writeln(selObj[i].contents);
fileObj.writeln(); // 1行空ける
}
fileObj.close();
alert("ファイルに書き出しました");
}else{
alert("ファイルが作成できません。アクセス権があるか確認してください");
}

■ポイント
 もしかしたら、文字コードの関係で正しく書き出せない文字があるかもしれません。

■実際のスクリプトをダウンロード(sample.jsx.zip)

写真素材 PIXTA