Here's a little script that will prompt for a key name and value and add them to the user data of every object in your document. Then you can put things like
Code:
Document prepared for <%userdata ClientName%>
in your document, and update them whenever needed by simply running the script again. Note: user data keys cannot have spaces in them, so "Client Name" won't work, but "ClientName" will.
Thanks to RobTrew for showing the way to someone so unwilling to actually sit down and learn Applescript properly :-)
Code:
tell application id "OGfl"
set MykeyName to my PromptKeyInfo("Name of key to create/set", "MyKey", false)
set MydataVal to my PromptKeyInfo("Value of data to set", "<None>", true)
set MyScript to "
tell application id \"OGfl\"
repeat with aCanvas in every canvas of document of front window
set canvas of front window to aCanvas
repeat with aGraphic in every graphic of aCanvas
if (count of user data of aGraphic is not 0) then
set user data of aGraphic to {" & MykeyName & ":\"" & MydataVal & "\"} & user data of aGraphic
else
set user data of aGraphic to {" & MykeyName & ":\"" & MydataVal & "\"}
end if
end repeat
end repeat
end tell
"
run script MyScript
end tell
on PromptKeyInfo(Prompt, DefaultAnswer, SpacesAllowed)
set Successful to false
repeat while (Successful is not true)
set recReturned to display dialog Prompt default answer DefaultAnswer buttons {"OK", "Cancel"} default button {"OK"}
set retVal to (text returned of recReturned)
set Successful to true
if (not SpacesAllowed) then
set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to " "
set wordCount to count of every text item of retVal
if (wordCount is not 1) then
display dialog "Key names may not contain spaces"
set Successful to false
end if
end if
end repeat
return retVal
end PromptKeyInfo