[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:1184) [AS InDesignCS] Text Esport
YUJI@勉強部屋さんところの話題。
あっちはあっさり書きすぎたかなw
ドラッグ&ドロップだったり,ページごとのインターフェイスも必要だろうか? >だれとなく
(*
Text_Export
(c)2003-2005 www.seuzo.jp
ドキュメント上のテキストをストーリー順にすべて書き出します。
●history
2005.07.14 ver.0.1 とりあえず
*)
--------------------------------------------------------●コントロールルーチン
--★起動チェック
my ver()
my doc_exists()
--★実行
tell application "InDesign CS_J"
activate
set my_file to (choose file name with prompt "出力ファイルを保存します" default name "contents.txt")
set contents_txt to my do_it()
my write_file(contents_txt, my_file)
--★終了ダイアログ
display dialog "書き出しおわりました"
end tell
--------------------------------------------------------●InDesignバージョン確認ルーチン
to ver()
tell application "InDesign CS_J"
set my_version to version
if my_version < 3 and my_version > 3.9 then
my my_error("このプログラムはInDesign CS以外では動作しません", true)
end if
end tell
end ver
--------------------------------------------------------●ドキュメントが開かれているかどうか
to doc_exists()
tell application "InDesign CS_J"
if not (exists document 1) then
activate
beep
display dialog "ドキュメントが開かれていません" buttons "キャンセル" default button 1
end if
end tell
end doc_exists
--------------------------------------------------------●テキスト抜き出し
to do_it()
set tmp_txt to "" as Unicode text
tell application "InDesign CS_J"
tell document 1
set every_story to every story
repeat with i in every_story
set tmp_i_txt to contents of (object reference of i)
set tmp_txt to tmp_txt & tmp_i_txt & return & return
end repeat
end tell
end tell
return tmp_txt
end do_it
------------------------------------------★ファイル書き出し
on write_file(contents_txt, my_file)
tell application "Finder"
set FH to open for access my_file with write permission
try
write contents_txt to FH
on error errMsg number errNo
close access FH
activate
display dialog "書き込み時のエラーです" & return & errMsg & errNo
return
end try
close access FH
update my_file
end tell
end write_file
------------------------------------------★エラー処理
on my_error(err_str, my_stop)
set err_str to err_str as Unicode text
if my_stop then
set my_stop to {"中止"}
else
set my_stop to {"中止", "続行"}
end if
tell application "InDesign CS_J"
--set user interaction level to interact with all --ユーザー操作の禁止を解除します
activate
beep
set ANS to button returned of (display dialog err_str buttons my_stop default button 1 with icon stop) --警告ダイアログ出してストップ
if ANS is "中止" then
error number -128
end if
end tell
end my_error