[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Auswahl und Gruppierung von übereinanderliegenden Objekten

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

Auswahl und Gruppierung von übereinanderliegenden Objekten

Medienoperator
Beiträge gesamt: 45

12. Jul 2019, 12:07
Beitrag # 16 von 21
Beitrag ID: #571087
Bewertung: ||
(1274 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ok, ich gebe zu: ich hatte mir dein Skript im Detail nicht richtig angeschaut, und vermutet, dass der Ansatz falsch war, aber scheinbar funktioniert dein Skript bis aufs Gruppieren.
Hier musst du von der übergeordneten Seite, Spread oder vom Dokument ausgehen.
Also nicht:
Code
groups.add([_wisch, textContainers[c]]); 


Sondern:
Code
var neueGruppe = app.activeDocument.groups.add([_wisch, textContainers[c]]); 


Wenn ich das in deinem Skript anpasse, werden die Elemente gruppiert, allerdings gibt es eine Fehlermeldung ("ungültiger Parameter"), den ich nicht ganz verstehe...

Aber vielleicht hat da noch wer eine Idee...

Grüße
Sascha


als Antwort auf: [#571045]
(Dieser Beitrag wurde von Medienoperator am 12. Jul 2019, 12:08 geändert)
Hier Klicken X

Auswahl und Gruppierung von übereinanderliegenden Objekten

Marc Sidon
Beiträge gesamt: 262

12. Jul 2019, 13:02
Beitrag # 17 von 21
Beitrag ID: #571088
Bewertung:
(1249 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
zugegeben, ich habe mir jetzt nicht alle Posts hier durchgelesen,
aber wenn Du rausfinden möchtest, ob zwei PageItems übereinander liegen (vorausgesetzt sie sind auf der selben Seite), dann kannst Du dies mit diesem kleinen Skript machen...

Code
function BoundsIntersect(b1, b2) { 
return (b1[1] < (b2[1] + (b2[3] - b2[1]))) &&
(b2[1] < (b1[1] + (b1[3] - b1[1]))) &&
(b1[0] < (b2[0] + (b2[2] - b2[0]))) &&
(b2[0] < (b1[0] + (b1[2] - b1[0])));
}

var itm1 = app.activeDocument.pages.firstItem().pageItems[0];
var itm2 = app.activeDocument.pages.firstItem().pageItems[1];


BoundsIntersect(itm1.geometricBounds, itm2.geometricBounds);


Gruß,
Marc
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#571087]
(Dieser Beitrag wurde von Marc Sidon am 12. Jul 2019, 13:11 geändert)

Anhang:
GeometricBoundsOfTwoPageItemsIntersect.jsx (0.62 KB)

Auswahl und Gruppierung von übereinanderliegenden Objekten

Marc Sidon
Beiträge gesamt: 262

12. Jul 2019, 13:47
Beitrag # 18 von 21
Beitrag ID: #571089
Bewertung: |||
(1237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe mir erlaubt, Dein Skript mal komplett umzuschreiben.
SO sollte es funktionieren, wie Du es vor hattest...
Wenn nicht, sag Bescheid...

Code
function BoundsIntersect(b1, b2) { 
return (b1[1] < (b2[1] + (b2[3] - b2[1]))) &&
(b2[1] < (b1[1] + (b1[3] - b1[1]))) &&
(b1[0] < (b2[0] + (b2[2] - b2[0]))) &&
(b2[0] < (b1[0] + (b1[2] - b1[0])));
}

function CollectWischer(document) {
var found = new Array();

for(var n=0;n<document.allGraphics.length;n++) {
if(document.allGraphics[n].itemLink.name =="Wischer.ai") {
var _wisch = document.allGraphics[n].parent;
found.push(_wisch);
}
}

return found;
}

function CollectStreichung(document) {
var found = new Array();

for(var n=0;n<document.textFrames.length;n++) {
var txt = document.textFrames[n];
if(txt.appliedObjectStyle.name == 'streichung') {
found.push(txt);
}
}

return found;
}

function Execute() {
var _dok = app.documents[0];
var allWischer = CollectWischer(_dok);
var allStreichung = CollectStreichung(_dok);

for (var i=0; i<allWischer.length; i++) {
var wisch = allWischer[i];
for (var x=0; x<allStreichung.length; x++) {
var streich = allStreichung[x];
if (BoundsIntersect(wisch.geometricBounds, streich.geometricBounds)) {
_dok.pages.firstItem().groups.add([wisch, streich]);
continue;
}
}
}
}

Execute();

------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#570814]

Auswahl und Gruppierung von übereinanderliegenden Objekten

faxinger
Beiträge gesamt: 233

12. Jul 2019, 14:23
Beitrag # 19 von 21
Beitrag ID: #571091
Bewertung:
(1218 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

vielen vielen Dank. Dein Skript funktioniert wunderbar, genauso wie ich es haben wollte. Das ist eine sehr elegante Lösung. Auf die Funktion mit BoundsIntersect in der Art und Weise wäre ich nie gekommen.


Eines hätte ich noch gerne: Das Skriptetikett des jeweiligen Textrahmens mit Objektformat streichung sollte als Etikett für die jeweilige Gruppe eingesetzt werden.

Also: der jeweilig gefundene Textrahmen mit Objektformat "streichung" hat ein label und dessen Inhalt soll auch als Label der durch das Skript entstehenden Gruppe dienen.

Ich hoffe ich habs nicht zu verwirrend beschrieben?

Mir ist nicht klar an welchem Punkt im Skript das eingesetzt gehört.


als Antwort auf: [#571089]

Auswahl und Gruppierung von übereinanderliegenden Objekten

Marc Sidon
Beiträge gesamt: 262

12. Jul 2019, 14:37
Beitrag # 20 von 21
Beitrag ID: #571092
Bewertung: |||
(1212 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nichts leichter als das... :)

Code
 
function BoundsIntersect(b1, b2) {
return (b1[1] < (b2[1] + (b2[3] - b2[1]))) &&
(b2[1] < (b1[1] + (b1[3] - b1[1]))) &&
(b1[0] < (b2[0] + (b2[2] - b2[0]))) &&
(b2[0] < (b1[0] + (b1[2] - b1[0])));
}

function CollectWischer(document) {
var found = new Array();

for(var n=0;n<document.allGraphics.length;n++) {
if(document.allGraphics[n].itemLink.name =="Wischer.ai") {
var _wisch = document.allGraphics[n].parent;
found.push(_wisch);
}
}

return found;
}

function CollectStreichung(document) {
var found = new Array();

for(var n=0;n<document.textFrames.length;n++) {
var txt = document.textFrames[n];
if(txt.appliedObjectStyle.name == 'streichung') {
found.push(txt);
}
}

return found;
}

function Execute() {
var _dok = app.documents[0];
var allWischer = CollectWischer(_dok);
var allStreichung = CollectStreichung(_dok);

for (var i=0; i<allWischer.length; i++) {
var wisch = allWischer[i];
for (var x=0; x<allStreichung.length; x++) {
var streich = allStreichung[x];
if (BoundsIntersect(wisch.geometricBounds, streich.geometricBounds)) {
var lbl = streich.label;
var newGrp = _dok.pages.firstItem().groups.add([wisch, streich]);
newGrp.label = lbl;
continue;
}
}
}
}

Execute();

------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#571089]

Auswahl und Gruppierung von übereinanderliegenden Objekten

faxinger
Beiträge gesamt: 233

12. Jul 2019, 14:53
Beitrag # 21 von 21
Beitrag ID: #571093
Bewertung:
(1200 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

super vielen vielen Dank.

Funktioniert jetzt genau so wie es sein soll. GENIAL!

Danke

Schönes Wochenende

LG
faxinger


als Antwort auf: [#571092]
Hier Klicken X
Hier Klicken

Aktuell

Quark / Adobe / Apple / Microsoft
einleitung_scharfzeichnen_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.

Veranstaltungen
27.08.2019

Die smarte PDF-Workflow-Lösung für Druckereien — powered by Enfocus

Impressed GmbH, Hamburg
Dienstag, 27. Aug. 2019, 10.00 - 10.30 Uhr

Webinar

Wir stellen Ihnen das neueste Produkt aus dem Hause Impressed vor. Den Impressed Workflow Server (IWS) Der Impressed Workflow Server (kurz: IWS) ist eine automatisiert arbeitende PDF-Workflow-Lösung für Druckereien mit einer zentralen, Datenbank-gestützten Jobverwaltung und einer Browser-basierten Jobsteuerung. Die Bedienoberfläche des IWS ermöglicht eine Übersicht über die aktuellen in der Produktion befindlichen Dateien und kann deren weiteren Verlauf steuern. Der IWS automatisiert und standardisiert somit die Produktion - Powered by Enfocus! Der Impressed Workflow Server ist das Ergebnis unserer jahrzehntelangen Erfahrung mit Workflows für die Druckvorstufe sowie die logische Weiterentwicklung auf Basis von bewährten Enfocus Technologien.

Nein

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

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

Impressed Workflow Server (IWS)
Veranstaltungen
28.08.2019

8005 Zürich
Mittwoch, 28. Aug. 2019, 18.00 - 20.15 Uhr

Meetup

«Das Leseerlebnis optimal gestalten, die eigenen Botschaften wirkungsvoll verbreiten und bei der Inhaltserstellung und -verwaltung von schlanken Prozessen und Effizienz profitieren - Publishing erfordert heute den richtigen Umgang mit Tools und Systemen. Eine Mehrkanal-Strategie ist dabei in den meisten Fällen von den Lesern nicht nur gefordert, sondern verdichtet die bereits bestehenden Herausforderungen. Gerade Automatisierungen können hier Abhilfe verschaffen. Nicht nur ermöglichen sie ein durchgängiges und einheitliches Leseerlebnis auf allen Kanälen. Sie machen den Prozess vielmehr effizienter und effektiver. An diesem Publishing-Meetup zeigt Benjamin Linsi verschiedene Beispiele für automatisiertes Publishing - von der kostengünstigen Web-to-Print Lösung über eine ausgeklügeltes Mehrkanal-Publishing-System bis zu einem umfassenden, medienneutralen und browserbasiertem Redaktionssystem. - AGENDA - 18.00 Speech von Benjamin Linsi 19.30 Apéro & Networking 20.15 Check-out - SPEAKER - "Als Marketer denke ich immer von der Zielgruppe aus, lege die Botschaften fest und bestimme, welche Kanäle bespielt werden. Dabei ist ein effizienter Prozess meist massgebend für die eigene Zielerreichung." Benjamin Linsi ist im Marketing Zuhause und setzt sich dabei, sowohl für seine eigene Arbeit als auch im Kundenkontakt, stark mit digitalen Lösungen auseinander. In seiner Position bei der Medienmacher AG setzt er sich dabei fokussiert mit dem Mehrwert von Publishing-Systemen auseinander.»

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.meetup.com/de-DE/Publishing-Group-Switzerland/events/263255802/

Mit Automatisierung den Publishing-Workflow verbessern