Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Skript Formate in Formatgruppen umbenennen

Skript Formate in Formatgruppen umbenennen

andreas131
Beiträge gesamt: 24

30. Okt 2018, 17:39
Bewertung:

gelesen: 45580

Beitrag als Lesezeichen
Hallo zusammen,

ich nutze gelegentlich ein Skript hier aus dem Forum von Martin Fischer, das mir eine große Hilfe bei der Umbenennung von Formaten ist (Absatz- und Zeichenformate).
Allerdings werden Formate in Formatgruppen nicht geändert. Ich habe nun einiges ausprobiert, habe aber leider keine Lösung gefunden das Skript entsprechend anzupassen.

Eventuell gibt es hier schon was, das ich bei meiner Suche übersehen habe? Oder ihr habt mir einen Tipp, wie ich das Skript anpassen kann.

Vielen Dank für eure Hilfe.

Viele Grüße
Andreas

Und hier das Skript von Martin Fischer

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.")
}
}

Skript Formate in Formatgruppen umbenennen

Martin Fischer
  
Beiträge gesamt: 12783

30. Okt 2018, 17:59
Bewertung:

gelesen: 45569

Beitrag als Lesezeichen
Hallo Andreas,

das Skript stammt aus einer Zeit in der es noch keine Formatgruppen gab.


Quick & dirty könntest Du mal Folgendes versuchen:

Ersetze die Zeile
Code
var myStyles = myDoc.paragraphStyles; 


durch die Zeile
Code
var myStyles = myDoc.allParagraphStyles; 


Macht das Skript damit das, was Du erwartest?

Viele Grüße
Martin


Skript Formate in Formatgruppen umbenennen

andreas131
Beiträge gesamt: 24

30. Okt 2018, 21:04
Bewertung:

gelesen: 45542

Beitrag als Lesezeichen
Hallo Martin,

vielen Dank für deine schnelle Antwort. Deinen Vorschlag hatte ich ausprobiert und jetzt nochmals überprüft. Leider wird dann bei allen Formaten (gleich ob in einer Formatgruppe oder nicht) nun die Fehlermeldung ausgegeben:

"Absatzformat [XXX] nicht vorhanden oder Absatzformat [YYY] nicht überschreibbar."

Schade, das wäre schön gewesen. :-)

Danke und viele Grüße
Andreas

Skript Formate in Formatgruppen umbenennen

Martin Fischer
  
Beiträge gesamt: 12783

30. Okt 2018, 21:09
Bewertung:

gelesen: 45539

Beitrag als Lesezeichen
Ja, bei genauerem Hinsehen kann das nicht gehen. Bitte um etwas Geduld.

Viele Grüße
Martin


Skript Formate in Formatgruppen umbenennen

Martin Fischer
  
Beiträge gesamt: 12783

31. Okt 2018, 07:31
Bewertung:

gelesen: 45493

Beitrag als Lesezeichen
Hallo Andreas,

das Skript habe ich etwas umgebaut.

Code
//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[i].name] != undefined)
{
if (!doc.allParagraphStyles[i].parent.paragraphStyles.itemByName(new_name[doc.allParagraphStyles[i].name]).isValid)
doc.allParagraphStyles[i].name = new_name[doc.allParagraphStyles[i].name];
else
no_change.push( get_extpsname(doc.allParagraphStyles[i]) );
}
}

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:
Code
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).

Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 31. Okt 2018, 11:00 geändert)

Skript Formate in Formatgruppen umbenennen

andreas131
Beiträge gesamt: 24

31. Okt 2018, 10:45
Bewertung:

gelesen: 45472

Beitrag als Lesezeichen
Hallo Martin,

einfach großartig dein Skript. 1000 Dank dir.

Macht genau das was ich benötige. In einer Zeile hat sich ein Leerzeichen eingeschlichen:

Code
   while (g.parent.constructor .name == 'ParagraphStyleGroup') 



Code
   while (g.parent.constructor.name == 'ParagraphStyleGroup') 


Danke dir auch für die Hinweise zum Skript.

Ich wünsche dir eine schöne Restwoche.

Viele Grüße
Andreas

Skript Formate in Formatgruppen umbenennen

Martin Fischer
  
Beiträge gesamt: 12783

31. Okt 2018, 11:03
Bewertung:

gelesen: 45465

Beitrag als Lesezeichen
Hallo Andreas,

Antwort auf: In einer Zeile hat sich ein Leerzeichen eingeschlichen:


Danke für den Hinweis.
Hab's oben korrigiert.

Viele Grüße
Martin


Skript Formate in Formatgruppen umbenennen

bmn_133
Beiträge gesamt: 1

6. Jun 2020, 11:11
Bewertung:

gelesen: 43692

Beitrag als Lesezeichen
Hallo, ich weiß das Thema ist schon etwas älter, doch habe ich eine deutsche Seite gefunden die ein Script anbietet, welches genau das kann. Also Formate und auch Formatgruppen-namen umbenennen. GREP ist hier auch noch möglich. Lohnt sich also das mal anzusehen. Sucht einfach mal nach http://www.steiniscript.de.

Skript Formate in Formatgruppen umbenennen

MichaelP
Beiträge gesamt: 268

7. Jan 2021, 11:05
Bewertung:

gelesen: 40621

Beitrag als Lesezeichen
Hallo Martin,

was müsste man ändern, damit das Skript auch bei Zeichformaten (und evtl. weiteren Formaten) funktioniert? Reicht es, überall "Paragraph" durch "Character" zu ersetzen?
.
Grüße von Michael

_______________

Schönheit ist das Weglassen von Überflüssigem. (Michelangelo)

Skript Formate in Formatgruppen umbenennen

WernerPerplies
Beiträge gesamt: 2762

7. Jan 2021, 11:55
Bewertung:

gelesen: 40601

Beitrag als Lesezeichen
Andreas,

schau Dir mal dieses Skript an, dass alle Formattypen in Formatgruppen behandelt.

Vielleicht kann Dir das helfen
.
https://weepee.de/...hp/s/iY9dDg7TqKmK8bK

Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

Skript Formate in Formatgruppen umbenennen

MichaelP
Beiträge gesamt: 268

7. Jan 2021, 16:07
Bewertung: |||

gelesen: 40563

Beitrag als Lesezeichen
Antwort auf: Reicht es, überall "Paragraph" durch "Character" zu ersetzen?


Es funktioniert. Ich hätte es ja auch gleich ausprobieren können ...
.
Grüße von Michael

_______________

Schönheit ist das Weglassen von Überflüssigem. (Michelangelo)

Skript Formate in Formatgruppen umbenennen

typecookie
Beiträge gesamt: 63

1. Okt 2022, 18:52
Bewertung:

gelesen: 14514

Beitrag als Lesezeichen
Hallo zusammen,

vor einiger Zeit bin über dieses Thema gestolpert und verwende seither das Script für alle Formatkategorien in angepasster Form immer wieder gerne. Es spart eine Menge Zeit und Nerven bei wiederkehrender Aufbereitung von Dateien mit sehr vielen Formaten, die in ein vorgegebenes Schema überführt werden müssen.

Leider gibt es in den Dateien auch sehr viele Formatgruppen, was mich nun zu der Frage bringt, ob analog zu der Formatumbenennung auch eine Scriptvariante möglich wäre, oder es sie vielleicht schon gibt, mit welcher die ebenfalls vorhandenen Formatgruppen in jeder Formatkategorie (Absatz-, Zeichen, Objekt, Zellen- und Tabellenformat) jeweils in einem Rutsch umbenannt werden können.

(Dieser Beitrag wurde von typecookie am 1. Okt 2022, 18:53 geändert)

Skript Formate in Formatgruppen umbenennen

typecookie
Beiträge gesamt: 63

3. Okt 2022, 12:56
Bewertung:

gelesen: 14420

Beitrag als Lesezeichen
Upps, gerade fällt mir auf, dass mein Text nicht vollständig ist. hier kommt der fehlende Absatz:

Diverse Suchen im Netz haben zu keinem Erkenntnisgewinn geführt und beim Scripten hapert's bei mir noch gewaltig. Habt ihr vielleicht eine Lösung oder Tipps und Tricks, wie man so eine Umbenennaktion umsetzen kann?

Vielen Dank im Voraus.

Skript Formate in Formatgruppen umbenennen

Ollymac
Beiträge gesamt: 235

3. Okt 2022, 15:20
Bewertung:

gelesen: 14393

Beitrag als Lesezeichen
Hallo typecookie,

für manche Aufgabenstellungen (v.a. Umbenennung ähnlicher/gleicher Namenselemente von Formaten mit GREP) eignet sich das (kostenpflichtige) Skript von Luis Felipe Corullón https://corullon.com.br/...oduct/rename-styles/. Leider kann es keine Suchstrings oder Settings abspeichern. Schau dir einfach mal das Video auf der Seite an.

Feiertägliche Grüße
Olly
-- -- -- -- --
Mac mini M2 Pro, macOS Sonoma (14.4), Adobe CC, FrameMaker 10

Skript Formate in Formatgruppen umbenennen

typecookie
Beiträge gesamt: 63

3. Okt 2022, 17:10
Bewertung:

gelesen: 14370

Beitrag als Lesezeichen
Hallo ollymac,

danke für deine Antwort. Das Script von LFC habe ich schon. Es funktioniert auch prima bei Änderungen, die einem Schema unterliegen, aber leider eben nicht für das Umbenennen von mehreren individuellen Namen in ganz andere individuelle Namen.

An dem weiter oben vorgestellten Script von Martin Fischer finde ich spannend, wie quasi anhand einer Liste Namen durch ganz andere ersetzt werden können. Dasselbe Prinzip für Formatgruppen wäre super.

Skript Formate in Formatgruppen umbenennen

typecookie
Beiträge gesamt: 63

3. Mär 2023, 18:52
Bewertung:

gelesen: 1541

Beitrag als Lesezeichen
Hallo zusammen,

ich komme noch einmal mit der Frage um die Ecke, ob das oben stehende Script von Martin Fischer so umgebaut werden kann, dass statt der Formate die Formatgruppen in der jeweiligen Palette in einem Rutsch gemäß der einzutragenden Paarungen geändert werden.

Und wenn ja, kann das jemand für mich machen? Soll auch nicht »für umsonst« sein …

Skript Formate in Formatgruppen umbenennen

Martin Fischer
  
Beiträge gesamt: 12783

10. Mär 2023, 13:47
Bewertung:

gelesen: 1378

Beitrag als Lesezeichen
Deine Anforderungen sind deutlich komplexer als im obigen Skript, auf das Du Bezug nimmst.

Irgendwie müssen die Gruppen in den einzelnen Bereichen (AF-Gruppen, ZF-Gruppen, Objektstilgruppen, Farbfeldergruppen, Tabellenformatgruppen, Zellenformatgruppen) mitverwaltet und unterschieden werden.

Und das alles im Skript selbst zu hinterlegen, scheint mir auch nicht sinnvoll.

Alternativ könnte ich mir bereichspezifische Listen (CSV-Dateien) vorstellen oder Dialoge, basierend auf den alten Namen ggf. mit Vorschlägen für neue Namen (GREP oder aus Listen).

Aber das alles übersteigt Aufwand und Interesse dessen, was hier im Forum zu leisten ist. Das Design wäre besser auf direktem Weg abzustimmen.

Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 10. Mär 2023, 13:48 geändert)

Skript Formate in Formatgruppen umbenennen

typecookie
Beiträge gesamt: 63

10. Mär 2023, 14:04
Bewertung:

gelesen: 1366

Beitrag als Lesezeichen
Super, ich hab eine Mail geschickt …

Skript Formate in Formatgruppen umbenennen

WernerPerplies
Beiträge gesamt: 2762

10. Mär 2023, 15:24
Bewertung:

gelesen: 1344

Beitrag als Lesezeichen
Moin,

ich habe habe gerade gesehen, das mein obiger Link nicht mehr funktioniert, vielleicht kann diese Klasse bei der Aufgabenstellung helfen:
WpsStylesClass

Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen