[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:1576) Re: [JS_InDesign CS2]画像の再リンク
InDesign CS3用にAppleScriptで書き直してみた。
(*
relink.applescript
(c)2007 www.seuzo.jp
特定のリンクファイルを再リンクする
取扱危険なので、充分テスト&&検証してください^^
2007.07.01 ver.0.2 InDesign CS3のAppleScript版、政治的な理由
*)
--古いリンクファイルのフルパス名。
set old_path to "
Work:test:old:071.eps
Work:test:old:045.eps
Work:test:old:034.eps
Work:test:old:026.eps
Work:test:old:005.eps
Work:test:old:021.eps
Work:test:old:015.eps
Work:test:old:011.eps
" as Unicode text
--新しいリンクファイルのフルパス名。上のold_pathの各行と対応している必要がある。
set new_path to "
Work:test:new:071.psd
Work:test:new:045.psd
Work:test:new:034.psd
Work:test:new:026.psd
Work:test:new:005.psd
Work:test:new:021.psd
Work:test:new:015.psd
Work:test:new:011.psd
" as Unicode text
--======================================================
--こっから処理
tell application "Adobe InDesign CS3"
my doc_exists()
set my_count to 0 --リンク修正数のカウンタ
tell document 1
repeat with i in all graphics --すべてのグラフィックについて
set i to item link of i
set my_status to status of i
if my_status is link out of date or my_status is link missing then --リンクが切れていたら以下を実行
set my_file_path to file path of i
repeat with ii from 1 to count paragraph of old_path
set a_old_path to paragraph ii of old_path --1行持ってくる
if a_old_path is my_file_path then --a_old_pathと合致したら
relink i to paragraph ii of new_path --新しいパスにリンクしなおす。
update i
set my_count to my_count + 1
end if
end repeat
end if
end repeat
end tell
end tell
display dialog (my_count & "箇所のリンクを更新しました") as Unicode text
--------------------------------------------------------●ドキュメントが開かれているかどうか
to doc_exists()
tell application "Adobe InDesign CS3"
if not (exists document 1) then
activate
my my_error("ドキュメントが開かれていません", true)
end if
end tell
end doc_exists
----------------------------------●エラー処理
to 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 "Adobe InDesign CS3"
activate
beep
set ANS to button returned of (display dialog err_str buttons my_stop) --警告ダイアログ出してストップ
if ANS is "中止" then error number -128
end tell
end my_error