[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:1475) [AS_Indesign CS2]Clip2Tagtext
クリップボード中のテキストをファイルに書き出して、
rubyでタグづけして、InDesign CS2で選択しているテキストフレームに取り込みます。
rubyスクリプトはフルパス指定だし(だっていちいち選択するのめんどい)、
特にエラー処理も考えてないので、おうち使い用。
--★ファイルの場所を書き換える必要があります!
set ruby_script_path to "HD:Users:hoge:Desktop:tag:tag.rb" --rubyスクリプトのありか。エンコーディングはShiftJIS
set my_tmp_path to "HD:Users:hoge:Desktop:tag:tmp_clip2Tag.txt" --処理前テキストのありか(なくても勝手に作ります)
set my_tmp_new_path to "HD:Users:hoge:Desktop:tag:tmp_clip2Tag_new.txt" --処理後テキストのありか(なくても勝手に作ります)
--クリップボードの確認と取り込み
if (clipboard info for Unicode text) is not {} then --クリップボードのテキストが空でなかったら
set clip_str to the clipboard as string --変数にセットしちゃうのはShiftJIS
else
my my_error("クリップボードが空です", true) --クリップボードが空なら中止
end if
--クリップボードの内容をファイル書き出し
my write_file(clip_str as string, my_tmp_path)
--置換プログラムに食べさせて、タグづけ
do shell script "ruby " & ((quoted form of POSIX path of ruby_script_path) & " " & (quoted form of POSIX path of my_tmp_path) & " > " & (quoted form of POSIX path of my_tmp_new_path))
--InDesign CS2の選択テキストフレームにタグ付きでインポートする。
tell application "Adobe InDesign CS2_J"
activate
if not (exists selection) or class of selection is not in {text frame, insertion point, text, text column, story, paragraph, line, word, character} then
my my_error("テキストフレームを選択してください", true) --テキスト以外を選択しているなら中止
end if
tell document 1
place my_tmp_new_path on selection
end tell
end tell
------------------------------------------●ファイル書き出し
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)
if my_stop then
set my_stop to {"中止"}
else
set my_stop to {"中止", "続行"}
end if
tell application "Adobe InDesign CS2_J"
activate
set ans to button returned of (display dialog err_str buttons my_stop with icon 0) --警告ダイアログ出してストップ
if ans is "中止" then error number -128
end tell
end my_error