[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt JS Absatzformate umbenennen

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

JS Absatzformate umbenennen

netsrik
Beiträge gesamt: 93

11. Mär 2011, 12:44
Beitrag # 1 von 6
Bewertung:
(2835 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

jetzt versuche ich es in Javascript und das klappt auch nicht besser.
Ich möchte aus einer CS 1-Datei die Absatzformate umbenennen und ein paar davon in einen im Script dafür angelegten Absatzformateordner zu schieben.

Ich habe es erstmal nur mit den Absatzformaten versucht, die in den Ordner geschoben werden sollen, die anderen habe ich erstmal außen vor gelassen.

Dafür habe ich mir das Script von Martin Fischer (moveStyles2Group.jsx) ausgeborgt und darin weitergearbeitet. Das mit dem Umbenennen der Absatzformate funktioniert super, nur das Bewegen in den entsprechenden Ordner klappt nicht. Es muss also am letzten Teil im Script liegen.

Kann mal bitte jemand drüber schauen, woran es liegt?
Code
//FormatNamenUmbenennen.js  

var myOldStyleRubrik = ["Rubrik Überschrift", "Rubrik Aufzählungspunkte", "Rubrik DZ International", "Rubrik DZ Versuchsberichte", "Rubrik Fließtext", "Rubrik Fließtext ohne Einzug", "Rubrik Interview Überschrift", "Rubrik Interview Antwort", "Rubrik Interview Frage", "Rubrik Produkt-Info", "Rubrik Vorspann", "Rubrik_Initial_2zeilig"]
var myNewStyleRubrik = ["Rubrik_Titel", "Rubrik_Aufzaehlungspunkte", "Rubrik_DZ_International", "Rubrik_DZ_Versuchsberichte", "Rubrik_Bodytext", "Rubrik_Bodytext_ohne_Einzug", "Rubrik_Interview_Titel", "Rubrik_Interview_Antwort", "Rubrik_Interview_Frage", "Rubrik_Produkt-Info", "Rubrik_Vorspann", "Rubrik_Initial_2zeilig"]

var d = app.activeDocument;
var myStyles = d.paragraphStyles;

if (myOldStyleRubrik.length == myNewStyleRubrik.length){
for (k=0;k<myOldStyleRubrik.length;k++){
changeName(myOldStyleRubrik[k], myNewStyleRubrik[k]);
}
}
else{
alert(myOldStyleRubrik.length + " alte Formate gegen " + myNewStyleRubrik.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.")
}
}
Object.prototype.get = function( )
{
try {
var myObject = this.item( arguments[0].name );
myObject.name;
}
catch (e) {
var myObject = this.add( arguments[0] );
}
return myObject;
}

groupPS(d.name);

function groupPS(s){
var myGroup = d.paragraphStyleGroups.get({name: "Rubrik"});
var myStylesRubrik = d.paragraphStyles.itemByName ("Rubrik_Titel", "Rubrik_Aufzaehlungspunkte", "Rubrik_DZ_International", "Rubrik_DZ_Versuchsberichte", "Rubrik_Bodytext", "Rubrik_Bodytext_ohne_Einzug", "Rubrik_Interview_Titel", "Rubrik_Interview_Antwort", "Rubrik_Interview_Frage", "Rubrik_Produkt-Info", "Rubrik_Vorspann", "Rubrik_Initial_2zeilig") ;
//for (var i = myStylesRubrik.length-1; i > 1 ; i--){
try{
myStylesRubrik[i].move( LocationOptions.AT_BEGINNING, myGroup );
} catch(e){}
}
//}

Danke!
Viele Grüße,

Kirsten
X

JS Absatzformate umbenennen

Martin Fischer
  
Beiträge gesamt: 12783

11. Mär 2011, 13:13
Beitrag # 2 von 6
Beitrag ID: #466779
Bewertung:
(2828 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kirsten,

die Prototype-Definition muß ganz am Anfang des Skripts stehen.
Code
Object.prototype.get = function( )    
{
try {
var myObject = this.item( arguments[0].name );
myObject.name;
}
catch (e) {
var myObject = this.add( arguments[0] );
}
return myObject;
}


Geht's dann?


als Antwort auf: [#466776]
(Dieser Beitrag wurde von Martin Fischer am 11. Mär 2011, 13:36 geändert)

JS Absatzformate umbenennen

Martin Fischer
  
Beiträge gesamt: 12783

11. Mär 2011, 14:01
Beitrag # 3 von 6
Beitrag ID: #466792
Bewertung:
(2807 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Geht's dann?


Nein, dann geht's immer noch nicht, weil in der Funktion groupPS() etwas durcheinandergeraten ist.


Versuch's mal damit.
Code
groupPS ( ["Rubrik_Titel", "Rubrik_Aufzaehlungspunkte", "Rubrik_DZ_International", "Rubrik_DZ_Versuchsberichte", "Rubrik_Bodytext", "Rubrik_Bodytext_ohne_Einzug", "Rubrik_Interview_Titel", "Rubrik_Interview_Antwort", "Rubrik_Interview_Frage", "Rubrik_Produkt-Info", "Rubrik_Vorspann", "Rubrik_Initial_2zeilig"] )  

function groupPS(p_styles) {
var myGroup = d.paragraphStyleGroups.get( { name: "Rubrik" } );
for (var i = p_styles.length-1; i > 1 ; i-- ) {
try {
d.paragraphStyles.itemByName.move( LocationOptions.AT_BEGINNING, myGroup );
} catch(e){}
}
}



als Antwort auf: [#466779]

JS Absatzformate umbenennen

netsrik
Beiträge gesamt: 93

11. Mär 2011, 16:09
Beitrag # 4 von 6
Beitrag ID: #466803
Bewertung:
(2783 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

jetzt bekomme ich keine Fehlermeldung mehr, aber er verschiebt die Absatzformate immer noch nicht in den Ordner Rubrik.
Code
//FormatNamenUmbenennen.js  

Object.prototype.get = function( )
{
try {
var myObject = this.item( arguments[0].name );
myObject.name;
}
catch (e) {
var myObject = this.add( arguments[0] );
}
return myObject;
}

var myOldStyleRubrik = ["Rubrik Überschrift", "Rubrik Aufzählungspunkte", "Rubrik DZ International", "Rubrik DZ Versuchsberichte", "Rubrik Fließtext", "Rubrik Fließtext ohne Einzug", "Rubrik Interview Überschrift", "Rubrik Interview Antwort", "Rubrik Interview Frage", "Rubrik Produkt-Info", "Rubrik Vorspann", "Rubrik_Initial_2zeilig"]
var myNewStyleRubrik = ["Rubrik_Titel", "Rubrik_Aufzaehlungspunkte", "Rubrik_DZ_International", "Rubrik_DZ_Versuchsberichte", "Rubrik_Bodytext", "Rubrik_Bodytext_ohne_Einzug", "Rubrik_Interview_Titel", "Rubrik_Interview_Antwort", "Rubrik_Interview_Frage", "Rubrik_Produkt-Info", "Rubrik_Vorspann", "Rubrik_Initial_2zeilig"]

var d = app.activeDocument;
var myStyles = d.paragraphStyles;

if (myOldStyleRubrik.length == myNewStyleRubrik.length){
for (k=0;k<myOldStyleRubrik.length;k++){
changeName(myOldStyleRubrik[k], myNewStyleRubrik[k]);
}
}
else{
alert(myOldStyleRubrik.length + " alte Formate gegen " + myNewStyleRubrik.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.")
}
}


groupPS(["Rubrik_Titel", "Rubrik_Aufzaehlungspunkte", "Rubrik_DZ_International", "Rubrik_DZ_Versuchsberichte", "Rubrik_Bodytext", "Rubrik_Bodytext_ohne_Einzug", "Rubrik_Interview_Titel", "Rubrik_Interview_Antwort", "Rubrik_Interview_Frage", "Rubrik_Produkt-Info", "Rubrik_Vorspann", "Rubrik_Initial_2zeilig"] );

function groupPS(p_styles){
var myGroup = d.paragraphStyleGroups.get({name: "Rubrik"});
for (var i = p_styles.length-1; i > 1 ; i--){
try{
d.paragraphStyles.itemByName.move( LocationOptions.AT_BEGINNING, myGroup );
} catch(e){}
}
}


Habe ich was vergessen?

Viele Grüße,

Kirsten


als Antwort auf: [#466792]

JS Absatzformate umbenennen

Martin Fischer
  
Beiträge gesamt: 12783

11. Mär 2011, 16:36
Beitrag # 5 von 6
Beitrag ID: #466809
Bewertung:
(2779 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sorry.

Diesmal ist mir auf die Schnelle was schiefgelaufen.

Probier's damit:
Code
groupPS ( ["Rubrik_Titel", "Rubrik_Aufzaehlungspunkte"] ) 

function groupPS(p_styles) {
var myGroup = d.paragraphStyleGroups.get( { name: "Rubrik" } );
for (var i = p_styles.length-1; i >= 0 ; i-- ) {
try {
d.paragraphStyles.itemByName(p_styles[i]).move( LocationOptions.AT_BEGINNING, myGroup );
} catch(e){}
}
}



als Antwort auf: [#466803]

JS Absatzformate umbenennen

netsrik
Beiträge gesamt: 93

13. Mär 2011, 21:30
Beitrag # 6 von 6
Beitrag ID: #466896
Bewertung:
(2697 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

bingo, das war’s!
Vielen vielen Dank.

Gruß, Kirsten


als Antwort auf: [#466809]
X