Hallo Andreas,
das Skript habe ich etwas umgebaut.
//FormatNamenUmbenennen.jsx
if (app.documents.length == 0) exit();
var doc = app.activeDocument;
var no_change = [];
var new_name = [];
// ==================================
new_name['Absatzformat 1'] = 'A1';
new_name['Absatzformat 2'] = 'A2';
new_name['Absatzformat 3'] = 'A3';
new_name['Absatzformat 4'] = 'A4';
new_name['Absatzformat 5'] = 'A5';
// ==================================
for (var i = 2; i < doc.allParagraphStyles.length; i++)
{
if (new_name[doc.allParagraphStyles.name] != undefined)
{
if (!doc.allParagraphStyles.parent.paragraphStyles.itemByName(new_name[doc.allParagraphStyles.name]).isValid)
doc.allParagraphStyles.name = new_name[doc.allParagraphStyles.name];
else
no_change.push( get_extpsname(doc.allParagraphStyles) );
}
}
if (no_change.length > 0)
alert('Folgende Absatzformate konnten nicht umbenannt werden:\n' + no_change.join('\n') );
function get_extpsname(ps)
{
var str = ps.name;
var g = ps;
while (g.parent.constructor.name == 'ParagraphStyleGroup')
{
g = g.parent;
str = g.name + ':' + str;
}
return str;
}
Die Zuordnungen "alter Name" – "neuer Name" definierst Du im Block zwischen den Trennlinien:
new_name['Absatzformat 1'] = 'A1';
In der eckigen Klammer steht der alte Name in einfachen Anführungszeichen.
Hinter dem Gleichheits-/Zuweisungszeichen = steht der neue Name.
Sprich: "new name von 'Absatzformat 1' ist 'A1'.
Änderungen, die wg. Vorhandenseins eines Absatzformats mit dem Zielnamen in der entsprechenden Formatgruppenebene nicht vorgenommen werden können, erscheinen am Ende in einer Zusammenfassung (Dialog).