Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Gruppe auf bestimmter Ebene erstellen

Gruppe auf bestimmter Ebene erstellen

Jack.
Beiträge gesamt: 25

10. Okt 2018, 08:30
Bewertung:

gelesen: 3267

Beitrag als Lesezeichen
Hallo zusammen,

ich zweifle gerade mal wieder an mir selbst. ich habe auf einer Seite ein paar Elemente verteilt auf mehreren Ebenen, diese möchte ich gruppieren und die Gruppe soll der Ebene "Druckelemente" zugeordnet werden.

Code
... 
var myElements = myDoc.groups.add(myDoc.spreads[0].pageItems, myDoc.layers.item("Druckelemente"));
...


Laut https://www.indesignjs.de/extendscriptAPI/indesign13/#Groups.html#d1e235206__d1e235255 sollte das doch funktionieren.
Group add (groupItems:Array of PageItem, layer:Layer, [at:LocationOptions=LocationOptions], reference:Varies Document Layer MasterSpread Page Spread PageItem, withProperties:Object)


Klar könnte ich es nun so lösen:

Code
... 
var myElements = myDoc.groups.add(myDoc.spreads[0].pageItems);
myElements.itemLayer = "Druckelemente";
...


Ich wüsste nur gerne ob ich etwas falsch gemacht habe.

(Dieser Beitrag wurde von Jack. am 10. Okt 2018, 08:48 geändert)

Gruppe auf bestimmter Ebene erstellen

Dirk Becker
Beiträge gesamt: 193

10. Okt 2018, 19:07
Bewertung:

gelesen: 3220

Beitrag als Lesezeichen
myDoc.groups klingt suspekt. Schau' mal auf die Typen-Liste des "parent" property von Group - da bietet sich eher die Spread an.

Eventuell kann man statt des Layer Objekts auch direkt den Namen mitgeben, hab' ich aber nicht probiert.

Gruppe auf bestimmter Ebene erstellen

Gerald Singelmann
  
Beiträge gesamt: 6269

11. Okt 2018, 06:25
Bewertung:

gelesen: 3186

Beitrag als Lesezeichen
Ich hab grad mal ein halbes Dutzend Variationen durchgespielt, mit doc.groups.add vs page.groups.add und page.pageItems vs page.pageItems.everyItem().getElements()

Ich habe es aber nicht geschafft, den zweiten Parameter zum Funktionieren zu überreden. Scheint ein Bug zu sein.

Alternativ funzt auch der Properties Parameter:
Code
main(); 

function main() {
var doc = app.activeDocument;
var l = doc.layers.item("gruppe");
var e = doc.pages.firstItem().pageItems.everyItem().getElements();
var g = doc.groups.add(
e,
{itemLayer: l }
);
}

Gruppe auf bestimmter Ebene erstellen

Jack.
Beiträge gesamt: 25

11. Okt 2018, 08:29
Bewertung:

gelesen: 3173

Beitrag als Lesezeichen
Danke für eure Antworten.

Ich hatte auch schon mehrere Varianten probiert und bin nicht zum Ziel gekommen.