[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:
(6144 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: 12590

16. Sep 2005, 15:14
Beitrag # 2 von 5
Beitrag ID: #187565
Bewertung:
(6115 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;
}


Viele Grüße
Martin




als Antwort auf: [#187555]

Indesign JavaScript

Aioli
Beiträge gesamt: 5

3. Jul 2019, 10:47
Beitrag # 3 von 5
Beitrag ID: #570924
Bewertung:
(1830 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: 12590

3. Jul 2019, 11:20
Beitrag # 4 von 5
Beitrag ID: #570928
Bewertung:
(1811 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;
}


Viele Grüße
Martin




als Antwort auf: [#570924]

Indesign JavaScript

Aioli
Beiträge gesamt: 5

3. Jul 2019, 11:43
Beitrag # 5 von 5
Beitrag ID: #570930
Bewertung:
(1800 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

Aktuell

InDesign / Illustrator
IDUG_300

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
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/