[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Script - Ebene umbenennen

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

Script - Ebene umbenennen

removed
Beiträge gesamt: 19

28. Aug 2015, 16:30
Beitrag # 1 von 5
Bewertung:
(4028 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen

Bin auf der Suche nach einem Script, dass mir eine bestehende Ebene (z.B Ebene 1) in allen offenen Dokumente umbenennt (z.B Ebene 2). Ich möchte nur den Namen ändern, Position und alles soll gleich bleiben. Wichtig ist, dass es über alle geöffneten Dokumente rauscht, da ich mit Buchdateien arbeite.

Funktioniert bei mir einfach nicht - kommt aber auch keine Fehlermeldung:



Code
var allDocs = app.documents;  
// loop through all layers

for (var i = 0; i < allDocs.length; i++) {
var currentLayer = app.activeDocument.layers[i];

//Set up variables for current and new name
var currentName = "deu";
var newName = "fra";

//Set up Variable to access layer name



if (currentLayer.name == currentName) {
currentLayer.name = newName;


}
}



Vielen Dank für eure rasche Hilfe!

Beste Grüsse,
removed

(Dieser Beitrag wurde von Martin Fischer am 28. Aug 2015, 17:08 geändert)
X

Script - Ebene umbenennen

Martin Fischer
  
Beiträge gesamt: 12687

28. Aug 2015, 17:07
Beitrag # 2 von 5
Beitrag ID: #542392
Bewertung:
(4014 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

in Deinem Ansatz fehlt die Schleife durch die Ebenen, in der die Namen geprüft werden.
In der Variable currentLayer werden bei Dir alle Ebenen adressiert.

Du könntest die Ebene in den einzelnen Dokumente etwa wie folgt direkt ansprechen:
Code
if (allDocs[i].layers.itemByName(currentName).isValid) 
allDocs[i].layers.itemByName(currentName).name = newName;



als Antwort auf: [#542389]

Script - Ebene umbenennen

Kai Rübsamen
Beiträge gesamt: 4679

28. Aug 2015, 17:41
Beitrag # 3 von 5
Beitrag ID: #542395
Bewertung:
(3983 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Interessant: Das geht auch, ist aber fehleranfällig, wenn es die Ebenen nicht gibt bzw. schon gibt.

Code
app.documents.everyItem().layers.itemByName("deu").name = "fra"; 



als Antwort auf: [#542392]

Script - Ebene umbenennen

Kai Rübsamen
Beiträge gesamt: 4679

28. Aug 2015, 17:50
Beitrag # 4 von 5
Beitrag ID: #542396
Bewertung:
(3972 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
und hier noch eine Version, die keinen Fehler bringt:

Code
// vorsichtshalber die Dialoge einschalten 
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

// testen, ob mind. ein Dokument geöffnet ist
if (app.documents.length == 0) {
alert ("Es ist kein Dokument offen");
exit();
}

// alle Ebenen in allen geöffneten Dokumenten
var allLayersInOpenDocs = app.documents.everyItem().layers.everyItem().getElements();
var c = 0;

for (var i = 0; i < allLayersInOpenDocs.length; i++) {
var curLayer = allLayersInOpenDocs[i];
if (curLayer.name == "deu") {
curLayer.name = "fra";
c++;
}
}

alert("Es wurden " + c + " Ebenen umbenannt!");



als Antwort auf: [#542395]

Script - Ebene umbenennen

removed
Beiträge gesamt: 19

1. Sep 2015, 06:40
Beitrag # 5 von 5
Beitrag ID: #542471
Bewertung:
(3668 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen zusammen

Vielen Dank für eure rasche Antwort! Funktioniert wirklich einwandfrei!
Immer wieder toll, wie einem hier im Forum geholfen wird.

Beste Grüsse und schöne Woche,
removed


als Antwort auf: [#542396]
X