[GastForen Programme Print/Bildbearbeitung Adobe InDesign Indesign JavaScript

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

Indesign JavaScript

doin0011
Beiträge gesamt: 1

16. Sep 2005, 14:40
Beitrag # 1 von 5
Bewertung:
(6497 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wie sieht der JavaScript source code aus, wenn man in InDesign den Namen von Formatvorlagen automatisch umbenennen will?
X

Indesign JavaScript

Martin Fischer
  
Beiträge gesamt: 12732

16. Sep 2005, 15:14
Beitrag # 2 von 5
Beitrag ID: #187565
Bewertung:
(6468 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi boin,

ich bin zwar überzeugt, Dich nicht richtig verstanden zu haben.
Vielleicht hilft Dir aber dies weiter:
Code
//FormatNamenUmbenennen.js 

var myOldStyle = ["Überschrif1", "Überschrift2"]
var myNewStyle = ["Überschrift 1", "Überschrift 2"]

var myDoc = app.documents[0];
var myStyles = myDoc.paragraphStyles;
if (myOldStyle.length == myNewStyle.length){
for (k=0;k<myOldStyle.length;k++){
changeName(myOldStyle[k], myNewStyle[k]);
}
}
else{
alert(myOldStyle.length + " alte Formate gegen " + myNewStyle.length + " neue Formate.\rBitte angleichen.")
}

function changeName(oldStyle, newStyle){
try{
myStyles.item(oldStyle).name=newStyle;
}
catch(e){
//möglichereise newStyle nicht überschreibbar
alert("Absatzformat \"" + oldStyle + "\" nicht vorhanden oder Absatzformat \"" + newStyle + "\" nicht überschreibbar.")
}
}


oder das
Code
// FormatNamenUmbenennenSprache.js 
// Ersetzt in den Formatnamen den String myAltSprach durch myNeuSprach
// z.B. aus "Normal_DEU" wird "Normal_FRA"
//
var myAltSprach = "DEU"
var myNeuSprach = "FRA"

var myDoc = app.documents[0];
var myStyles = myDoc.paragraphStyles;
for (k=1;k<myStyles.length;k++){
myDoc.paragraphStyles[k].name = convertName(myDoc.paragraphStyles[k].name);
}

function convertName(oneStyle){
var oneStyle = oneStyle.split(myAltSprach);
var oneStyle = oneStyle.join(myNeuSprach);
return oneStyle;
}



als Antwort auf: [#187555]

Indesign JavaScript

Aioli
Beiträge gesamt: 5

3. Jul 2019, 10:47
Beitrag # 3 von 5
Beitrag ID: #570924
Bewertung:
(2183 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

das Script FormatNamenUmbenennenSprache.js ist genau das, was ich brauche, vielen Dank dafür!
Mein Szenario: Etliche Formate eines Titels enthalten am Anfang „FR“ und sollen in „XR“ umbenannt werden, um als Vorlage für ein neues Werk weiterverwendet werden zu können.

DEU/FRA habe ich ersetzt und das Script abgespeichert.
Beim Ausführen des Scripts innerhalb eines Testdokuments mit einem Absatzformat „FR_Grundtext“ erhalte ich jedoch folgende Fehlermeldung:

Zitat JavaScript Fehler!
Fehlernummer 528
Fehlerzeichenfolge: Im Formatnamen dürfen keine Klammern verwendet werden.

Engine: main
...
Zeile: 11
Quelle: myDoc.paragraphStyles[k].name =


Ich nutze Indesign CS 6 am PC und habe auch schon andere Absatzformatnamen probiert. Wird eine Klammer im Code angemeckert oder weißt du, weshalb es hier zum Fehler kommt?

Herzlichen Dank im Voraus und viele Grüße


als Antwort auf: [#187565]

Indesign JavaScript

Martin Fischer
  
Beiträge gesamt: 12732

3. Jul 2019, 11:20
Beitrag # 4 von 5
Beitrag ID: #570928
Bewertung:
(2164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Aioli,

huch, das Skript ist schon uralt.
Willst Du die Aufgabe unter CS6-Bedingungen nicht lieber mit sprachspezifischen Formatgruppen lösen?

Der Fehler resultiert aus der Tatsache, dass das Skript auch versucht, das Absatzformat "[Einfacher Absatz]" (mit Klammern) umzubenennen. Das kann umgangen werden, indem der Start der Zählervariable von 1 auf 2 erhöht wird:

Code
// FormatNamenUmbenennenSprache.js  
// Ersetzt in den Formatnamen den String myAltSprach durch myNeuSprach
// z.B. aus "Normal_DEU" wird "Normal_FRA"
//
var myAltSprach = "DEU"
var myNeuSprach = "FRA"

var myDoc = app.documents.firstItem();
var myStyles = myDoc.paragraphStyles;
for (var i = 2; i < myStyles.length; i++)
{
try
{
myDoc.paragraphStyles.item(i).name = convertName(myDoc.paragraphStyles.item(i).name);
}
catch(e)
{
alert(myDoc.paragraphStyles.item(i).name + ': ' + e.message);
}
}

function convertName(oneStyle)
{
var str = oneStyle.split(myAltSprach).join(myNeuSprach);
return str;
}



als Antwort auf: [#570924]

Indesign JavaScript

Aioli
Beiträge gesamt: 5

3. Jul 2019, 11:43
Beitrag # 5 von 5
Beitrag ID: #570930
Bewertung:
(2153 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

besten Dank für deine schnelle Hilfe und Erklärung!

Du hast völlig recht: Ich sehe, dass ausschließlich Formate außerhalb von Formatgruppen umbenannt werden.
Tatsächlich geht es „nur“ darum, die Werkskürzel in den Formaten umzubenennen. Wenn nun diese Kürzel vom Arbeitstitel auf den finalen Titel geändert werden, muss ich mehrere Dutzend Formate und Formatgruppen umbenennen.
Anschließend wird für ein darauf aufbauendes Werk ein neues Kürzel gebraucht werden (Kundenanforderung).

Beispiel:
Der Arbeitstitel vom Anfang der Satzarbeiten, nennen wir ihn „FR“, muss dann „XR“ heißen und im nächsten Werk „YB“.

Wäre es dir möglich, das Script dahingehend zu erweitern, oder gibt es so etwas schon und ich habe es nicht gefunden?

Und: Kann eine Wiederholung mit
Code
var myStyles = myDoc.characterStyles; 

die Zeichenformate einschließen oder muss dort mehr beachtet werden?

Beste Grüße!


als Antwort auf: [#570928]
X

Neuste Foreneinträge


Cookie-Overload??

Kein Grep auf Satzzeichen am Ende einer URL

Text und QR Code in PDF einf�gen per PitStop Aktion statt InDesign

Bildschirmflackern beim Markieren von Texten

N�chstes Treffen der IDUG Stuttgart

Automatische Sicherung

PDF �ffnen via Script UI?

Affinity Publisher � schwarz wird in CMYK separiert

InDesign CC 2023 18 als Standard-App festlegen funktioniert nicht

Leerzeichen am Absatzende entfernen (AI2024 Win10)