Hallo Fies,
bitteschön.
Das Abspeichern mit "_QR" sowie weitere Ergänzungen hatte ich für die zweite Version vorgesehen. Nachdem eine positive Rückmeldung von Dir eingetroffen ist. Das ist jetzt der Fall, deshalb werde ich mit einer weiteren Mitteilung diese zweite Version, welche soeben fertig geworden ist, zustellen.
Als weitere Ergänzungen habe ich eingefügt, dass geprüft wird, ob das Dokument gespeichert ist. Und dass die Masseinheiten stimmen. Und auch, dass das Seitenformat dem erwarteten entspricht (damit ein skaliertes Dokument nicht ein zweites Mal behandelt werden kann). Und dass nur ein Druckbogen, aber mit zwei Seiten vorhanden ist.
Die verwendeten Werte werden nun zu Beginn des Scripts in Variablen gegeben. Bei einer Änderung der Vorgaben können sie somit leichter angepasst werden.
Code (* Skalieren_402d Dieses Script vergrössert ein Dokument auf 307 x 420 mm und skaliert die Objekte auf 126.7% © 12.09.11 / Hans Häsler, Châtelard 52, CH-1018 Lausanne / E-mail: hsa@ringier.ch *) -- die Seitenbreite des Originaldokuments set oldWidth to 240 -- die Seitenhöhe des Originaldokuments set oldHeight to 335 -- die neue Seitenbreite set newWidth to 307 -- die neue Seitenhöhe set newHeight to 420 -- der horizontale Skalierungsfaktor set horScale to 126.7 -- der vertikale Skalierungsfaktor set verScale to 126.7 -- die Ergänzung des Dateinamens set docNamePlus to "_QR" -- ein paar Variablen als "global" deklarieren global pW global pH global hMes global vMes tell application "Adobe InDesign CS4" activate -- prüfen, ob ein Dokument offen ist if not (exists document 1) then display dialog "Bitte ein Dokument öffnen." buttons "OK" default button 1 with icon 2 error number -128 end if -- den Pfad und den Namen speichern und den neuen Pfad zusammensetzen tell document 1 try set folderPath to file path set docName to name if docName ends with ".indd" then set docName to text 1 thru -6 of docName end if set newPath to (folderPath & docName & docNamePlus & ".indd") as string on error display dialog "Das Dokument zuerst speichern." buttons "OK" default button 1 with icon 0 error number -128 end try -- die Masseinheiten prüfen und ändern (falls notwendig) tell view preferences set hMes to horizontal measurement units set vMes to vertical measurement units if hMes is not millimeters or vMes is not millimeters then set properties to {horizontal measurement units:millimeters, vertical measurement units:millimeters} end if end tell tell document preferences -- das Dokument muss doppelseitig sein if facing pages is false then my restoreMeasurements() display dialog "Das Dokument ist nicht doppelseitig angelegt." buttons "OK" default button 1 with icon 0 error number -128 end if -- sicherstellen, dass die Grösse der Seite den definieren Werten entspricht if page width is not oldWidth or page height is not oldHeight then my restoreMeasurements() display dialog "Die Seitengrösse des Dokuments ist nicht " & oldWidth & " x " & oldHeight & " mm." buttons ¬ "OK" default button 1 with icon 0 error number -128 end if end tell -- sicherstellen, dass nur *eine* Doppelseite vorhanden ist if (count of spreads) is 1 then if (count of pages of spread 1) is not 2 then my restoreMeasurements() display dialog "Der Druckbogen muss *zwei* Seiten enthalten." buttons "OK" default button 1 with icon 0 error number -128 end if else my restoreMeasurements() display dialog "Es darf nur *ein* Druckbogen vorhanden sein." buttons "OK" default button 1 with icon 0 error number -128 end if -- den Nullpunkt auf [0,0] setzen set zero point to [0, 0] tell layout window 1 -- den aktuellen Referenzpunkt speichern ... set curRefPoint to transform reference point -- ... und ihn auf "Mitte" stellen set transform reference point to center anchor end tell -- die aktive Ebene feststellen, damit diese am Schluss wieder aktiviert werden kann set actLayer to active layer of layout window 1 -- den Zustand der Ebenen notieren set propsList to {} repeat with k from 1 to count of layers set active layer of layout window 1 to layer k tell layer k set curProps to {visible, locked} set end of propsList to curProps set properties to {visible:true, locked:false} end tell -- einen temporären Rahmen über die ganze Doppelseite aufziehen set tmpFrame to make rectangle at beginning with properties ¬ {geometric bounds:{0, 0, oldWidth, oldHeight}, stroke weight:0, fill color:"None", label:"t-m-p"} tell layer k set properties to {visible:false} end tell end repeat -- das Dokument vergrössern tell document preferences set properties to {page width:newWidth, page height:newHeight} end tell -- eine Schleife durch die Ebenen repeat with k from 1 to count of layers set properties of layer k to {visible:true} set locked of every page item of layer k to false set active layer of layout window 1 to layer k -- eine neue Gruppe mit allen Objekten der aktuellen Ebene erzeugen try make group with properties {group items:(every page item of layer k)} -- die Gruppe skalieren tell group 1 of layer k set properties to {horizontal scale:horScale, vertical scale:verScale} end tell -- die Gruppe entgruppieren ... tell group 1 of layer k to ungroup end try -- ... und das temporäre Rechteck löschen delete page item "t-m-p" of layer k end repeat end tell -- den Referenzpunkt zurücksetzen ... tell document 1 tell layout window 1 set transform reference point to curRefPoint end tell end tell -- eine letzte Schleife durch die Ebenen und die alten Zustand wiederherstellen tell document 1 repeat with k from 1 to count of layers tell layer k set curVis to item 1 of item k of propsList set curLck to item 2 of item k of propsList set properties to {visible:curVis, locked:curLck} end tell end repeat set actLayer to active layer of layout window 1 end tell -- das Dokument unter dem neuen Namen speichern save document 1 to newPath -- das Ende der Aktion verkünden display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1 end tell -- der Handler, welcher die Masseinheiten zurücksetzt (falls notwendig) on restoreMeasurements() tell document 1 of application "Adobe InDesign CS4" tell view preferences if hMes is not millimeters or vMes is not millimeters then set properties to {horizontal measurement units:hMes, vertical measurement units:vMes} end if end tell end tell end restoreMeasurements Gruss, Hans