on collectCurrentDoc() 以降を以下のように変えてみてください。
OS X 10.6.2, Illustrator CS4 では動きましたが、他は分かりません。エラーが出るようなら、あとは自力でお願いします。
うまく動いた場合は、例えば test.jpg が3つあったとすると、test.jpg, test1.jpg, test11.jpg という具合に、ファイル名に 1 が継ぎ足されたファイルができます。
on collectCurrentDoc()
tell application "Finder"
activate
set myFolder to (choose folder with prompt "Folder to save collected files") as string
end tell
try
tell application "Adobe Illustrator"
set docRef to document 1
set mydocname to name of docRef
save docRef in file (myFolder & mydocname)
set myrasters to every raster item of docRef whose embedded is false
set myplaceds to every placed item of docRef
end tell
tell application "Finder" to set newfolder to make new folder at myFolder with properties {name:"temporary"}
collectArtToLocal(myrasters, myFolder)
collectArtToLocal(myplaceds, myFolder)
tell application "Finder" to delete newfolder
on error myerr
display dialog myerr
end try
end collectCurrentDoc
on collectArtToLocal(myItems, myFolder)
repeat with myItem in myItems
tell application "Adobe Illustrator"
set myfile to file path of myItem
set myfilepath to POSIX path of myfile
end tell
tell application "Finder"
set myFileName to name of file (myfilepath as POSIX file)
copy file (myfilepath as POSIX file) to folder (myFolder & "temporary")
repeat while (file (myFolder & myFileName) exists)
set TID to AppleScript's text item delimiters
set AppleScript's text item delimiters to "."
set fileNameText to text item 1 of myFileName
set fileExtension to text item 2 of myFileName
set newFileName to fileNameText & "1" & "." & fileExtension
set AppleScript's text item delimiters to TID
set name of file (myFolder & "temporary:" & myFileName) to newFileName
set myFileName to newFileName
end repeat
move file (myFolder & "temporary:" & myFileName) to folder myFolder
end tell
end repeat
end collectArtToLocal
このスクリプトは、
http://forums.adobe.com/message/2388887
に書かれてるのと同じ原因で Snow Leopard では動かないため、実際に検証できませんが、
if not ((file myFileName of myillfilecontainer) exists) then
set mynewfile to (duplicate myfile to myillfilecontainer)
end if
という所で、同名のファイルがないかどうか判定しています。この end if の前に
else
(ファイル名を重ならないものに変えて複製)
というようなルーチンを付け加えれば、同じ名前のファイルも収集できるはずです。
ちなみに、このスクリプトには
http://oshiete1.goo.ne.jp/qa4294913.html
のような問題もあるので、気をつけてください。
お礼
完璧です! 当方、CS2ですが問題ないようです。 感謝感謝! ありがとうございました。