[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt [Javascript] Nächstes Farbfeld für Absatz wählen

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

[Javascript] Nächstes Farbfeld für Absatz wählen

ph
Beiträge gesamt: 50

20. Dez 2019, 13:09
Beitrag # 1 von 1
Bewertung:
(2807 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo HilfDirSelbst,

endlich habe ich einmal Gelegenheit, ein Skript zu teilen.

Für ein Projekt war es erforderlich, einen Absatz probeweise in unterschiedlichen Farben zu sehen. Dazu wollte ich in der Lage sein, mit einer Tastenkombination durch eine große Zahl von Farbfeldern zu »blättern«. Das ist (nach meinen Recherchen) mit Bordmitteln nicht möglich (falls doch sagt gern bescheid!). Und ich fand auch kein Skript dafür.

Das folgende Skript weist einem ausgewählten Absatz oder den Absätzen in einem ausgewählten Textrahmen das jeweils nächste Farbfeld zu. Am Ende der Farbfeld-Liste springt es wieder an den Anfang. Dem Skript wies ich dann eine Tastenkombination zu.

Das Skript funktioniert bei mir in InDesign 2020 aber vermutlich auch in früheren Versionen. Über die Qualität aus Programmierer*innensicht wage ich keine Einschätzung. Aber für mich tut es, was es soll. Vielleicht kann es jemand anderem die Arbeit erleichtern.

Rückmeldungen und Verbesserungsvorschläge freuen mich.

Beste Grüße und erfreuliche Feiertage

phillip

Code
//Farbfeld_naechstes.js 
//DESCRIPTION:Wählt für das ausgewählte Objekt das nächste Farbfeld. Springt am Ende wieder zum ersten Farbfeld.

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

// testen, ob ein Objekt ausgewählt ist
if (app.selection.length == 0) {
alert ("Bitte etwas auswählen.", "Achtung");
exit();
}

var curDoc = app.documents[0];

// Variablen initialisieren
var curSel = app.selection[0];
var selType = curSel.constructor.name;

if (selType === "Paragraph") {
if (curSel.fillColor.name) {
switchColour(curSel);
}
else {
alert("Entschuldigung!\nDieses Skript kann derzeit nur mit Elementen arbeiten, denen ein Farbfeld zugewiesen ist.\n");
}
}
else if (selType === "TextFrame") {
curPar = curSel.paragraphs;
for (var i = 0; i < curPar.length; i++) {
switchColour(curPar[i]);
}
}
else {
alert("Entschuldigung!\nDieses Skript kann derzeit nur mit markierten Absätzen oder Textrahmen arbeiten.");
exit();
}

function switchColour(elem) {
curSwatches = curDoc.swatches;
for (var i = 0; i < curSwatches.length; i++) {
if (elem.fillColor === curSwatches[i]) {
if (curSwatches.length > i+1) {
elem.fillColor = curSwatches[i+1];
break;
}
else {
elem.fillColor = curSwatches[0];
break;
}
}
}
}

X