[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