Es hat mir keine Ruhe gelassen...
Hier ein AppleScript, das die gewünschte Transformation mit Bezug auf die Ecke unten rechts vornimmt. Es sind zwar ein paar Prüfroutinen enthalten, das Script sollte aber nur auf eine Auswahl von Bildrahmen mit Bildinhalt oder auf die Direktauswahl eines Bildes angewandt werden.
-- Trafo.as
--
tell application "InDesign CS"
set myDoc to active document
set mySelection to selection
-- Prüfung, ob etwas ausgewählt ist.
if (count of mySelection) > 0 then
set myClass to class of item 1 of selection
-- Prüfung, ob Rahmen oder Bild ausgewählt
if myClass is rectangle then
set myObject to selection
else if myClass is image then
set myObject to parent of selection
end if
try
-- Iteration durch alle Objekte der Auswahl
repeat with myObjectNum from 1 to count of myObject
tell item myObjectNum of myObject
-- Koordinaten des Rahmens
set myFrameBounds to geometric bounds
-- Koordinaten des Rahmeninhalts
set myImageBounds to geometric bounds of item 1 of all graphics
-- Differenz der rechten unteren Ecken
set myXDiff to ((item 4 of myFrameBounds) - (item 4 of myImageBounds))
set myYDiff to ((item 3 of myFrameBounds) - (item 3 of myImageBounds))
-- Verschiebung
move item 1 of all graphics to {(item 2 of myImageBounds) + myXDiff, (item 1 of myImageBounds) + myYDiff}
end tell
end repeat
on error
display dialog "Something has gone wrong ..."
end try
else
display dialog ("Bitte etwas auswählen!")
end if
end tell
-- Ende Trafo.as
Das Skript kann auf einen oder mehrere Bildrahmen oder auf ein direkt ausgewähltes Bild angewendet werden (auf eine weitere Unterscheidung, ob es sich beim ausgewählten Objekt um etwas anderes, wie z.B. einen Textrahmen, handelt, habe ich verzichtet.
@ Urs: Meines Wissens ist es nicht möglich per Script auf die Elemente des UserInterfaces, so auch auf die Transformationspalette, zuzugreifen. Ich kann also die gewünschte Bezugsecke nicht aus der Transformationspalette auslesen, sondern müßte die 8 Bezugspunkte in einem Dialog zur Auswahl bieten. Dies würde aber im Moment mein Zeitkontingent sprengen.
@ Judith: Ich hoffe, Du kannst mit dem AppleScript etwas anfangen. Ansonsten könnte ich Dir eventuell heute Abend das gleiche nochmal in JavaScript stricken.
Grüßle
Martin
als Antwort auf: [#157731]
(Dieser Beitrag wurde von MartinF am 7. Apr 2005, 09:50 geändert)