Hallo Thorsten,
[ dies ist die Fortsetzung des Themas "Per Applescript Bildrahmen-Inhalt verschieben"
http://www.page-online.de/page/forum/viewthread/2992/ ]
Wenn benannte Rahmen angesprochen werden sollen, dann muss man das Script entsprechend anpassen.
Der Vorgabe-Rahmen-Name "Rueckenbild" kann im Dialog geändert werden. Die eingegebene Textkette
wird - mittles 'property' - für die nächste Ausführung gespeichert.
[ Wegen der Page-Forum-Beschränkung auf 6000 Zeichen muss der Code so dargestellt werden ]:
-- den Namen der Ziel-Bildrahmen festlegen
property frameLabel : "Rueckenbild"
-- den Vorgabe-Verschiebe-Wert bestimmen
property aVal : "-2"
-- feststellen, welches Zeichen als Dezimal-Separator definiert ist
set decSep to ""
try
[nbsp] "1.5" as real
[nbsp] set decSep to "."
on error
[nbsp] set decSep to ","
end try
tell document 1 of application "Adobe InDesign CS2"
[nbsp] activate
[nbsp] -- den Anwender bitten, den Rahmen-Namen einzugeben
[nbsp] set frameLabel to text returned of (display dialog "Den Rahmen-Namen eingeben:" default answer frameLabel)
[nbsp]
[nbsp] -- die Liste der Rahmen zusammenstellen, deren Namen dem eingegebenen entspricht
[nbsp] set frameRefs to every page item whose label is frameLabel
[nbsp] -- wenn die Liste leer ist, den Anwender informieren
[nbsp] if frameRefs is {} then
[nbsp] [nbsp] display dialog "Das aktive Dokument enthält keine Rahmen, welche \"" & frameLabel & "\" heissen." buttons
[nbsp] [nbsp] [nbsp] "OK" default button 1 with icon 0
[nbsp] [nbsp] -- der folgende Befehl bricht die Ausführung ab
[nbsp] [nbsp] error number -128
[nbsp] end if
[nbsp]
[nbsp] -- den Anwender bitten, den Versatz-Wert einzugeben
[nbsp] set aVal to text returned of (display dialog "Die Bilder verschieben um:" default answer aVal)
[nbsp] -- die Variable 'dVal' initialisieren
[nbsp] set dVal to ""
[nbsp] -- eine Schleife, um die Eingabe zu prüfen
[nbsp] repeat with i from 1 to count of aVal
[nbsp] [nbsp] -- der Variablen 'curChar' das aktuelle Zeichen der Eingabe zuweisen[nbsp]
[nbsp] [nbsp] set curChar to character i of aVal
[nbsp] [nbsp] -- wenn dieses Zeichen einem der möglichen entspricht, wird es an 'dVal' angehängt
[nbsp] [nbsp] if curChar is in "-0123456789" then
[nbsp] [nbsp] [nbsp] set dVal to dVal & curChar
[nbsp] [nbsp] else if curChar is in ".," then
[nbsp] [nbsp] [nbsp] set dVal to dVal & decSep
[nbsp] [nbsp] else
[nbsp] [nbsp] [nbsp] display dialog "Die Eingabe enthält ein ungültiges Zeichen:
" & curChar buttons "OK" default button 1 with icon 0
[nbsp] [nbsp] [nbsp] error number -128
[nbsp] [nbsp] end if
[nbsp] end repeat
[nbsp] -- die Textkette 'dVal' in eine Zahl verwandeln
[nbsp] set dVal to dVal as real
[nbsp]
[nbsp] -- eine Schleife durch die Rahmen, um den Versatz zuzuweisen
[nbsp] repeat with curFrame in frameRefs
[nbsp] [nbsp] tell curFrame
[nbsp] [nbsp] [nbsp] try
[nbsp] [nbsp] [nbsp] [nbsp] set {y1, x1, y2, x2} to geometric bounds of graphic 1
[nbsp] [nbsp] [nbsp] [nbsp] set properties of graphic 1 to {geometric bounds:{y1 + dVal, x1 + dVal, y2 + dVal, x2 + dVal}}
[nbsp] [nbsp] [nbsp] end try
[nbsp] [nbsp] end tell
[nbsp] end repeat
[nbsp]
[nbsp] display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell
Gruss, Hans