A solução da Adobe é para você usar o Adobe Bridge. Esta questão na Stack Exchange / Graphic Design tem uma boa discussão sobre a problema.
Quando confrontados com este problema de "links de PC", os usuários de Mac em uma empresa de pré-impressão executariam o seguinte Applescript para revincular o arquivo. Talvez você ache útil.
global foundPaths, foundPathNames
set foundPathNames to {}
set foundPaths to {}
set missedLinks to "" -- name of links not found
tell application "Adobe InDesign CS5"
activate
-- choose pic folder
set folderpath to (choose folder with prompt "Choose folder containing pictures:") as Unicode text
tell document 1
set missingLinks to every link whose status is link missing
if missingLinks is not {} then
set missingLinkNames to name of every link whose status is link missing
set linkcount to count of items of missingLinkNames
-- search for file recursively
my checkforfile(folderpath, missingLinkNames, linkcount)
set foundCount to count of items of foundPathNames
-- see if file was found, and relink if so
repeat with i from 1 to linkcount
repeat with j from 1 to foundCount
if contents of item j of foundPathNames = contents of item i of missingLinkNames then
relink item i of missingLinks to alias (item j of foundPaths)
exit repeat
else if j = foundCount then
set missedLinks to missedLinks & (item i of missingLinkNames) & ", "
end if
end repeat
end repeat
try -- in case there aren't any
update (every link whose status is link out of date)
end try
if missedLinks = "" then
display dialog "All links updated."
else
display dialog "The following links weren't found: " & return & (text 1 thru -3 of missedLinks)
end if
else
display dialog "No links missing."
end if
end tell
end tell
on checkforfile(folderpath, fileNames, n)
set theList to list folder file folderpath without invisibles
repeat with anItem in theList
set thePath to alias (folderpath & anItem) as Unicode text
if thePath ends with ":" then
set searchResult to my checkforfile(thePath, fileNames, n)
if searchResult is false then
return false
end if
else if contents of anItem is in fileNames then
set end of foundPathNames to contents of anItem
set end of foundPaths to thePath
if (count of items of foundPaths) = n then
return false
end if
end if
end repeat
return true
end checkforfile