[FIXED] Suchen und ersetzen Sie das Textproblem in Photoshop

Ausgabe

Nehmen wir an, ich habe in Photoshop ein paar Textebenen mit Inhalten wie diesem:

Text layer 1:  1@@text01@@abc
Text layer 2:  2@@text02@@cef
Text layer 3:  3@@text03@@hgi

Ich möchte alle Ebenentexte (den Inhalt jeder Textebene innerhalb der Zeichenfläche, nicht die Namen des Ebenenbedienfelds) ersetzen, beginnend mit dem first@und dem end@, das heißt @@text..@@, ##damit die Ergebnisse wie folgt aussehen:

Text layer 1:  1##abc
Text layer 2:  2##cef
Text layer 3:  3##hgi

Wie kann ich das erreichen?

Vielen Dank.

Lösung

Sie müssen im Wesentlichen 3 Operationen ausführen:

  • durchqueren Sie die Ebenen und wählen Sie sie nacheinander aus;
  • Ersetzen Sie einen Teil des Ebenennamens durch ein reguläres Ausdrucksmuster .
  • benennen Sie die Ebene mit dem neuen Namen um;

Eine einfache* Version davon könnte so aussehen:

var layer;

// looping through top layers
for (var i = 0; i < activeDocument.layers.length; i++) {
  layer = activeDocument.layers[i]; // for ease of read
  activeDocument.activeLayer = layer; // making the layer active
  layer.name = layer.name.replace(/@.*@/,'##'); // replacing the layer name. @.*@ regex pattern will select anything between two @ symbols
}

Update : Ersetzen des Ebenentextinhalts.

Im Grunde dasselbe mit einigen Ergänzungen. Sie müssen überprüfen, ob dies der Fall layer.kindist , LayerKind.TEXTund anstatt sich zu ändern layer.name, müssen Sie sich ändernlayer.textItem.contents

*. Beachten Sie, dass die activeDocument.layersSammlung nur Ebenen der obersten Ebene enthält. Wenn Ihr Dokument Gruppen (auch bekannt als Ordner) oder Zeichenflächen enthält, müssen Sie verschachtelte Ebenen mit einer anderen Funktion durchlaufen: etwa so


Beantwortet von –
Sergey Kritskiy


Antwort geprüft von –
Pedro (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like