Ich möchte ein Script schreiben: Die Höhe der aktuellen Seite soll so angepasst werden, dass sie den unteren Rand des untersten Objekts berührt. Die Höhenveränderung der Seite muss oben links als Nullpunkt haben.
Die Linealeinheit des Dokuments ist übrigens Pixel, falls das eine Rolle spielt. Ich bin kein Programmierer, und habe mithilfe von anderen Scripts etwas gebastelt, ohne gutes Ergebnis:
Fehler: 1. als Referenz wird immer das erste Objekt im Dokument genommen 2. pageHeight Veränderung passiert immer vom Dokumentmittelpunkt aus 3. Die Objekte werden mitskaliert
Toll wäre, wenn beim Start des Scripts ein Dialogfenster kommt, wo ich noch einen zusätzlichen Abstand eintippen kann. Wenn ich «20» eintippe, müsste das Script zur errechneten neuen Seitenhöhe einfach noch 20 dazurechnen. Als Text könnte in der Dialogbox stehen: «Abstand unten:»
Wahrscheinlich wäre das ganze viel einfacher, oder nicht? Kann mir jemand auf die Sprünge helfen?
Hallo buehda, das ist eine Frage, die mehr in die Skriptwerkstatt passt.
Man könnte folgendes machen:
1. Ein Duplikat aller PageItems der Seite. 2. Eine Gruppe mit den Duplikaten bilden. 3. Die Abmessungen auslesen. 4. Die Seitengröße mit reframe() ändern. 5. Die Gruppe löschen.
Zu beachten wäre:
1. reframe() funktioniert ausschließlich mit der Maßeinheit Points 2. besonderes Augenmerk sollte auf die Position des Nullpunkts gelegt werden
Da nur die Höhe der Seite geändert werden soll, könnte das ohne größere Probleme auch in Doppelseiten-Dokumenten funktionieren.
Was soll mit verankerten Rahmen geschehen? Sollen die auch beachtet werden? Gedrehte Rahmen könnten eine Herausforderung sein.
Eine Frage zum Schluß: Was ist der Sinn der Übung? ***** Mit herzlichem Gruß, Uwe Laubender
Die Beantwortung Deiner Fragen: zu 1.: Das erste Objekt (nach Index des allPageItems-Array) der aktiven Seite wird genommen. Denn das wird von Dir per Index 0 referenziert.
zu 2.: Du meinst den Mittelpunkt des "Spreads". Und daran kannst Du auch nichts ändern, wenn Du die pageHeight der documentPreferences änderst. Deshalb mein Vorschlag die Seitenhöhe der individuellen Seite(n) mit der Methode reframe() zu ändern.
zu 3.: Die Objekte werden skaliert ? Wirklich skaliert ?
Dann hast Du möglicherweise: über die Palette "Liquid Layout" und die Musterseiten die "Liquid-Seiten-Regel" auf "Skalieren" stehen. Für die Normalseiten dann "Gesteuert durch Musterseite" (oder eine ähnliche Einstellung über "Liquid Layout", die zum Skalieren der Seiteninhalte führt).
Überprüfe mal die Einstellungen der Seiten mithilfe des "Seiten"-Werkzeugs und der Palette "Liquid Layout". Vielleicht hast Du ja auch die "Layoutanpassung" aktiviert. Gelbes Warndreieck in der Palette "Liquid Layout". ***** Mit herzlichem Gruß, Uwe Laubender