[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Auf Objekte innerhalb von Gruppen zugreifen

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

Auf Objekte innerhalb von Gruppen zugreifen

faxinger
Beiträge gesamt: 246

3. Aug 2017, 09:47
Beitrag # 1 von 10
Bewertung:
(3753 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe schon ein Skript das mir alle Objekte auf dem Druckbogen die das Objektformat "A" haben um 90 Grad dreht. Das funktioniert solange gut sofern diese Objekte ungruppiert auf dem Druckbogen herumliegen.

Mein Fall ist aber leider so, dass diese Objekte eigentlich Teile von mehreren Gruppen sind.
Daher muss ich immer zuerst alle Gruppierungen auflösen das Skript ausführen und dann die Gruppierungen händisch wieder umsetzen.

Ginge das auch per Skript dass ich auf alle Elemente die Objektformat A haben innerhalb der Gruppe drehe und somit die Gruppierungen nicht auflösen müsste?

Danke
X

Auf Objekte innerhalb von Gruppen zugreifen

Uwe Laubender
Beiträge gesamt: 5319

3. Aug 2017, 11:25
Beitrag # 2 von 10
Beitrag ID: #558908
Bewertung:
(3747 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
( nahezu* ) alle Objekte einer Seite bekommst Du so:

Code
var objStyleName = "Mein Objektformatname"; 

var doc = app.activeDocument;
var objectStyle = doc.objectStyles.itemByName( objStyleName );
if(!objectStyle.isValid){ alert("Objektformat nicht gefunden. Abbruch."); exit() };

// Beispiel Seite 1 des aktiven Dokuments:
var allPageItemsOfPage1 = doc.pages[0].allPageItems;

// Schleife:
for(var n=0;n<allPageItemsOfPage1.length;n++)
{
if(allPageItemsOfPage1[n].appliedObjectStyle == objectStyle)
{
// Was mit dem gefundenen Objekt passieren soll:
doSomethingReasonable( allPageItemsOfPage1[n] );
};
}

function doSomethingReasonable( pageItem )
{
alert("Rotate me!"+"\r"+pageItem.id+"\r"+pageItem.parent.constructor.name);
};


( nahezu* ) alle Objekte eines Druckbogens:

Code
var allPageItemsOfSpread1 = doc.spreads[0].allPageItems; 


nahezu*
nahezu deswegen, weil allPageItems einer Seite, Druckbogen oder Dokuments nur den aktiven Status eines Mehrstatusobjekts erfassen kann.


als Antwort auf: [#558906]

Auf Objekte innerhalb von Gruppen zugreifen

faxinger
Beiträge gesamt: 246

3. Aug 2017, 13:17
Beitrag # 3 von 10
Beitrag ID: #558911
Bewertung:
(3733 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

vielen Dank.

Ich werde es dann gleich testen und Feedback geben.

LG
faxinger


als Antwort auf: [#558908]

Auf Objekte innerhalb von Gruppen zugreifen

faxinger
Beiträge gesamt: 246

3. Aug 2017, 13:21
Beitrag # 4 von 10
Beitrag ID: #558912
Bewertung:
(3731 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich glaube da kollidiert etwas:

das war mein skript dass die Gruppen unberücksichtigt ließ:
Code
 // Allen vorhandenen Textrahmen  mit Objektformat  "artikelnummer" um 90° drehen // 
var allFrames = app.activeDocument.textFrames;
var nFrames = allFrames.length;

for (var n=0; n<nFrames; n++) {
var curFrame = allFrames[n];
if (curFrame.appliedObjectStyle.name == "artikelnummer") {
curFrame.rotationAngle = 90;
}
}



als Antwort auf: [#558911]

Auf Objekte innerhalb von Gruppen zugreifen

Uwe Laubender
Beiträge gesamt: 5319

3. Aug 2017, 13:45
Beitrag # 5 von 10
Beitrag ID: #558913
Bewertung:
(3729 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nun ja, wenn Du das gesamte Dokument im Fokus hast (inkl. aller Musterseitenelemente), dann musst Du eben den allPageItems Array des Dokuments durchsuchen.


als Antwort auf: [#558912]

Auf Objekte innerhalb von Gruppen zugreifen

faxinger
Beiträge gesamt: 246

22. Aug 2017, 16:41
Beitrag # 6 von 10
Beitrag ID: #559170
Bewertung:
(3299 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

ich wollte dein skript adaptieren, bin aber gescheitert.

Wo muss ich bei meinem skript ansetzen um direkt innerhalb der Gruppen auf meine Objekt mit dem Objektformat "artikelnummer" zuzugreifen?

Code
 // Allen vorhandenen Textrahmen  mit Objektformat  "artikelnummer" um 90° drehen // 
var allFrames = app.activeDocument.textFrames;
var nFrames = allFrames.length;

for (var n=0; n<nFrames; n++) {
var curFrame = allFrames[n];
if (curFrame.appliedObjectStyle.name == "artikelnummer") {
curFrame.rotationAngle = 90;
}
}


Ich schätze mal dass nicht textframes angesprochen werden sollen sondern allPageItems...

Nur ich dreh mich da etwas im Kreis
Danke


als Antwort auf: [#558913]
(Dieser Beitrag wurde von faxinger am 22. Aug 2017, 16:42 geändert)

Auf Objekte innerhalb von Gruppen zugreifen

Uwe Laubender
Beiträge gesamt: 5319

22. Aug 2017, 18:05
Beitrag # 7 von 10
Beitrag ID: #559171
Bewertung:
(3283 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
also, da gibt's zwei Wege:

1. Alle pageItems des Dokuments adressieren und die TextFrames aussortieren und prüfen.

2. Alle stories des Dokuments adressieren und über die jeweiligen textContainers der Story die Textrahmen mit dem zugewiesenen Objektformat ausfiltern.

Auf die Schnelle:

Code
// The active document: 
var doc = app.documents[0];
var nameOfObjectStyle = "artikelnummer";

// Where is the rotation's center?
doc.layoutWindows[0].transformReferencePoint = AnchorPoint.CENTER_ANCHOR;

var allStories = doc.stories.everyItem().getElements();
var objectStyle = doc.objectStyles.itemByName(nameOfObjectStyle);

// In case you run this script the first time and are too lazy to add an object style:
if(!objectStyle.isValid)
{
var objectStyle = app.documents[0].objectStyles.add({name : nameOfObjectStyle});
};

// Loop all stories:
for(var n=0;n<allStories.length;n++)
{
var textContainers = allStories[n].textContainers;

// Loop all text containers of a particular story:
for(var c=0;c<textContainers.length;c++)
{
// Only text frames, no text paths
// And only text frames with our defined object style applied from above:
if(textContainers[c].constructor.name == "TextFrame" && textContainers[c].appliedObjectStyle == objectStyle)
{
// Rotate the text container:
textContainers[c].rotationAngle = 90;
};
};
};


Wenn Du ausschließlich Textrahmen einer Gruppe bearbeiten möchtest, müssen noch ein paar Zeilen rein, die untersuchen, ob der anvisierte Textrahmen teil einer Gruppe ist.


als Antwort auf: [#559170]

Auf Objekte innerhalb von Gruppen zugreifen

faxinger666
Beiträge gesamt: 167

23. Aug 2017, 08:59
Beitrag # 8 von 10
Beitrag ID: #559174
Bewertung:
(3232 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank Uwe,

so funktioniert es. Ich dachte zwar es ginge auch mit weniger Code, bzw. Code den ich größtenteils nachvollziehen könnte.

Aber dein Skript fragt ja auch Eventualitäten ab.
Jedenfalls funktioniert es genauso wie ich es brauche. Nochmals vielen Dank.

Ein kleiner Nachtrag - die Kür wäre es wenn alle Rahmen (Egal ob Text oder Bildrahmen in den Gruppen noch auf den Inhalt beschränkt / zugeschnitten würden.

Also dass z.B. alle Textrahmen nur die Größe des Inhalts verbrauchen würden. (fit to frame oder sowas in der Richtung)

Ginge das gleich in einem Aufwasch?

Danke
LG
faxinger


als Antwort auf: [#559171]

Auf Objekte innerhalb von Gruppen zugreifen

Uwe Laubender
Beiträge gesamt: 5319

23. Aug 2017, 09:14
Beitrag # 9 von 10
Beitrag ID: #559175
Bewertung:
(3227 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxinger,
schau' mal hier:

http://jongware.mit.edu/...c_TextFrame.html#fit

Oder hier ( CS6 und höher) für das automatische Anpassen:
http://jongware.mit.edu/...FramePreference.html


als Antwort auf: [#559174]

Auf Objekte innerhalb von Gruppen zugreifen

Uwe Laubender
Beiträge gesamt: 5319

23. Aug 2017, 09:16
Beitrag # 10 von 10
Beitrag ID: #559176
Bewertung:
(3226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Oder Du machst das bereits im Objektformat.
Das wäre die elegantere Methode.


als Antwort auf: [#559175]
X

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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

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

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!