[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Script: Seitenhöhe anpassen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Script: Seitenhöhe anpassen

buehda
Beiträge gesamt: 59

24. Jan 2016, 12:21
Beitrag # 1 von 4
Bewertung:
(2418 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen

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:

Code
function naive_getDims(/*PageItem*/obj, /*bool*/visible) 
// return the [width,height] of <obj>
// according to its (geometric|visible)Bounds
{
var boundsProperty = ((visible)?'visible':'geometric')+'Bounds';
var b = obj[boundsProperty];
return [ b[2] ];
}

myDoc = app.documents[0];
app.select(app.activeWindow.activePage.allPageItems);
var pItem = app.selection[0]; // get the selected object
myDoc.documentPreferences.pageHeight = pItem.geometricBounds[2];



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?

Vielen Dank & Gruss
buehda
X

Script: Seitenhöhe anpassen

Uwe Laubender
Beiträge gesamt: 5006

24. Jan 2016, 15:21
Beitrag # 2 von 4
Beitrag ID: #546270
Bewertung:
(2381 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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


als Antwort auf: [#546263]

Script: Seitenhöhe anpassen

Uwe Laubender
Beiträge gesamt: 5006

24. Jan 2016, 17:29
Beitrag # 3 von 4
Beitrag ID: #546279
Bewertung:
(2337 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ buehda ] 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


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


als Antwort auf: [#546263]

Script: Seitenhöhe anpassen

buehda
Beiträge gesamt: 59

25. Jan 2016, 21:31
Beitrag # 4 von 4
Beitrag ID: #546330
Bewertung:
(2182 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe

Vielen Dank für deine Antworten.


Zitat zu 1.: Das erste Objekt (nach Index des allPageItems-Array) der aktiven Seite wird genommen. Denn das wird von Dir per Index 0 referenziert.

Ok, andere Lösung.

Zitat 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.

Gut, ich versuchs mit reframe().


Zitat 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.


1. & 2. hat geklappt
Code
myDoc = app.documents[0]; 
app.select(app.activeWindow.activePage.allPageItems);
var myRectangle = app.selection[0];
var myDuplicate = myRectangle.duplicate();


3. und 4. geht irgendwie nicht:
Code
var myBottomRight = myDuplicate.resolve(AnchorPoint.BOTTOM_RIGHT_ANCHOR, CoordinateSpaces.INNER_COORDINATES)[0]; 

var myPage = app.activeWindow.activePage;
var myBounds = myPage.bounds;
var myY1 = myBounds[0];
var myX1 = myBounds[1];
var myX2 = myBounds[3];
myPage.reframe(CoordinateSpaces.INNER_COORDINATES, [[myX1, myY1], [myX2, myBottomRight]]);


Fehlermeldung: Ungültiger Wert für Parameter "opposingCorners" der Methode "reframe". Array of 2 Arrays of 2 Reals erwartet, aber ((0, 0), ……

Ihr merkt, ich hab keinen blassen Schimmer von Javascript;-)
Falls mir jemand weiterhelfen mag, danke!!

Gruss buehda


als Antwort auf: [#546279]
X

Aktuell

Photoshop / Lightroom
panorama_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
26.10.2021

Online
Dienstag, 26. Okt. 2021, 10.00 - 10.30 Uhr

Webinar

In unserem ca. 30-minütigen kostenlosen Webinar zeigt Ihnen unser Produktmanager Karsten Schwarze, wie Sie mit ColorLogic ColorAnt, CoPrA und ZePrA einen konsistenten Farbmanagement Workflow aufbauen und die Druckqualität sichern.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=305

Mit ColorLogic ColorAnt & CoPrA & ZePrA zum perfekten Druckergebnis
Veranstaltungen
29.10.2021 - 08.07.2022

Digicomp Academy, Zürich
Freitag, 29. Okt. 2021, 13.00 Uhr - Freitag, 08. Juli 2022, 19.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: 10'500.– zzgl. 7.7% MWST
Dauer: 30 Tage(ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberater AT digicomp DOT ch