[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Absatzformat wechseln

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

Absatzformat wechseln

painschen
Beiträge gesamt: 48

9. Jun 2010, 17:25
Beitrag # 1 von 27
Bewertung:
(5580 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Servus!

Bin dabei über ein Skript meine Absatzformate wechseln zu lassen.
Dies funktioniert soweit auch wunderbar (wenn das Skript bei den Absatzformat-Gruppen nicht scheitern würde)..

Code
	 
try {
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "PB_Headline_9pt";
app.changeTextPreferences.appliedParagraphStyle = "Artikelnr_9pt";
var StyleReplace = myDocument.changeText();
} catch (bug){}


Das macht für mich keinen Sinn - zumal es bei "findTextPreferences" keine Möglichkeit gibt eine Angabe zur Gruppierung zu machen.

Oder ist dieser Ansatz für meinen Zweck nicht zu gebrauchen?

Vielen Dank im Voraus!
X

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12025

9. Jun 2010, 20:28
Beitrag # 2 von 27
Beitrag ID: #444092
Bewertung:
(5554 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Antwort auf: Das macht für mich keinen Sinn - zumal es bei "findTextPreferences" keine Möglichkeit gibt eine Angabe zur Gruppierung zu machen.


Doch, das geht schon.
Anstelle des Strings für das Absatzformat musst Du eben ein Objekt paragraphStyle (als Kind eines Objekts paragraphStyleGroup) angeben:

Code
var d = app.documents.firstItem(); 
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "PB_Headline_9pt";
app.changeTextPreferences.appliedParagraphStyle = d.paragraphStyleGroups.itemByName('Formatgruppe 1').paragraphStyles.itemByName("Artikelnr_9pt");
var StyleReplace = d.changeText();


Viele Grüße
Martin




als Antwort auf: [#444067]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 09:26
Beitrag # 3 von 27
Beitrag ID: #444112
Bewertung:
(5514 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also das hieße, dass noch eine Schleife rein müsste, die alle Gruppen durchläuft und mit try{} abgesichert wird?

Dann probier ich das mal so und melde mich nochmal.

Danke schonmal!


als Antwort auf: [#444092]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 09:48
Beitrag # 4 von 27
Beitrag ID: #444113
Bewertung:
(5504 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ] Hallo,

Antwort auf: Das macht für mich keinen Sinn - zumal es bei "findTextPreferences" keine Möglichkeit gibt eine Angabe zur Gruppierung zu machen.


Doch, das geht schon.
Anstelle des Strings für das Absatzformat musst Du eben ein Objekt paragraphStyle (als Kind eines Objekts paragraphStyleGroup) angeben:

Code
var d = app.documents.firstItem(); 
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "PB_Headline_9pt";
app.changeTextPreferences.appliedParagraphStyle = d.paragraphStyleGroups.itemByName('Formatgruppe 1').paragraphStyles.itemByName("Artikelnr_9pt");
var StyleReplace = d.changeText();



Fehler: Ungültiger Wert für Einrichtung der Eigenschaft "appliedParagraphStyle". String,ParagraphStyle or NothingEnum enumerator erwartet, aber "PB_Headline_9pt" erhalten.

Find ich jetzt komisch..

Bei deiner und meiner abgeänderten Version:

Code
	 
var myDocument = app.activeDocument;
var myTextfields = myDocument.textFrames;

var counterParagraphStyles = myDocument.paragraphStyleGroups.count();
for(x=0;x<counterParagraphStyles;x++){
try{
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "PB_Headline_9pt";
app.changeTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByID(x).paragraphStyles.itemByName("Artikelnr_9pt");
var StyleReplace = myTextfields.changeText();
} catch(bug){alert(bug);}
}



als Antwort auf: [#444092]

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12025

10. Jun 2010, 09:50
Beitrag # 5 von 27
Beitrag ID: #444114
Bewertung:
(5505 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenn Du die Gruppe weißt, brauchst Du keine Schleife, um nach dem AF zu suchen.
Wenn Du sie nicht weißt, geht's nur über die Schleife.

Mit einem sauberen Code und einer Prüfung mit isValid kannst Du auf die die try-catch Klammer verzichten.

Viele Grüße
Martin




als Antwort auf: [#444112]

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12025

10. Jun 2010, 09:54
Beitrag # 6 von 27
Beitrag ID: #444115
Bewertung:
(5497 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Find ich jetzt komisch..

Verzichte mal auf die Angabe des AF als String und verwende besser die Angabe des Objekts d.paragraphStyles.itemByName("PB_Headline_9pt").

Der String ist für Faule und funktioniert unter bestimmten Umständen.
Wer's genau nimmt, der arbeitet besser mit dem Objekt.

Viele Grüße
Martin




als Antwort auf: [#444113]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 10:18
Beitrag # 7 von 27
Beitrag ID: #444121
Bewertung:
(5484 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Naja faul bin ich jetzt nicht unbedingt, hatte bisher nur nie Probleme mit dem String.. :)

Folgendes klappt nun:

Code
	 
var counterParagraphStylesGroups = myDocument.paragraphStyleGroups.count();
for(x=0;x<counterParagraphStylesGroups;x++){myDocument.paragraphStyleGroups[x].name
try{
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByName(myDocument.paragraphStyleGroups[x].name).paragraphStyles.itemByName("PB_Headline_9pt");
app.changeTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByName(myDocument.paragraphStyleGroups[x].name).paragraphStyles.itemByName("Artikelnr_9pt");
var StyleReplace = myDocument.changeText();
} catch(bug){}
}


Ist natürlich ganz blöd weil die Formate ja in verschiedenen Gruppen sein können.. also muss ich noch eine Schleife reinwürgen - aber sollte alles irgendwie klappen.

Das mit "isValid" kenn ich nicht, werd in der Doku mal schauen.

Hast mir aber schon sehr weitergeholfen, großes Dankeschön!


als Antwort auf: [#444115]

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12025

10. Jun 2010, 10:36
Beitrag # 8 von 27
Beitrag ID: #444123
Bewertung:
(5475 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Ist natürlich ganz blöd weil die Formate ja in verschiedenen Gruppen sein können.. also muss ich noch eine Schleife reinwürgen - aber sollte alles irgendwie klappen.


Noch blöder ist, wenn ein AF mit einem bestimmten Namen in mehreren Gruppen auftaucht.
Welches ist dann das richtige?
Das erste? Dann könntest Du die Schleife an dieser Stelle abbrechen.

Antwort auf: Das mit "isValid" kenn ich nicht, werd in der Doku mal schauen.


Damit prüfst Du ab CS4, ob ein Objekt gültig – in diesem Fall = vorhanden – ist.
true, wenn vorhanden
false, wenn nicht vorhanden

Viele Grüße
Martin




als Antwort auf: [#444121]

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 4387

10. Jun 2010, 10:39
Beitrag # 9 von 27
Beitrag ID: #444124
Bewertung:
(5471 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, zusammen!
Oder man arbeitet mit allParagraphStyles, dann braucht man sich um die Hierachie der Verzeichnisse keine Gedanken mehr zu machen. Fast nicht, denn wenn ich folgenden Code überdenke, dann könnte das falsche Absatzformat zugewiesen werden, wenn der gleiche Name zweimal in irgendwelchen Formatgruppen auftaucht:

Code
var d = app.documents.firstItem(); 

var SUCHE = "PB_Headline_9pt";
var ERSETZE = "Artikelnr_9pt";

var allPS = d.allParagraphStyles;
var allPSindexNum;

for(n=0;n<allPS.length;n++){
if(allPS[n].name==ERSETZE){
allPSindexNum = n;
};
};


app.findTextPreferences = app.changeTextPreferences = null;

app.findTextPreferences.appliedParagraphStyle = SUCHE;
app.changeTextPreferences.appliedParagraphStyle = d.allParagraphStyles[allPSindexNum];
var StyleReplace = d.changeText();

*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#444121]

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 4387

10. Jun 2010, 10:41
Beitrag # 10 von 27
Beitrag ID: #444125
Bewertung:
(5468 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Man könnte natürlich in der for-Schleife auch einen Array füttern und abfragen, ob mehr als 1 Eintrag vorhanden ist, bevor man ersetzt.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#444124]
(Dieser Beitrag wurde von Uwe Laubender am 10. Jun 2010, 10:43 geändert)

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12025

10. Jun 2010, 10:49
Beitrag # 11 von 27
Beitrag ID: #444127
Bewertung:
(5458 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

> Oder man arbeitet mit allParagraphStyles

guter Hinweis!

Viele Grüße
Martin




als Antwort auf: [#444124]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 17:31
Beitrag # 12 von 27
Beitrag ID: #444195
Bewertung:
(5405 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Uwe Laubender ] Hallo, zusammen!
Oder man arbeitet mit allParagraphStyles, dann braucht man sich um die Hierachie der Verzeichnisse keine Gedanken mehr zu machen. Fast nicht, denn wenn ich folgenden Code überdenke, dann könnte das falsche Absatzformat zugewiesen werden, wenn der gleiche Name zweimal in irgendwelchen Formatgruppen auftaucht:

Code
var d = app.documents.firstItem(); 

var SUCHE = "PB_Headline_9pt";
var ERSETZE = "Artikelnr_9pt";

var allPS = d.allParagraphStyles;
var allPSindexNum;

for(n=0;n<allPS.length;n++){
if(allPS[n].name==ERSETZE){
allPSindexNum = n;
};
};


app.findTextPreferences = app.changeTextPreferences = null;

app.findTextPreferences.appliedParagraphStyle = SUCHE;
app.changeTextPreferences.appliedParagraphStyle = d.allParagraphStyles[allPSindexNum];
var StyleReplace = d.changeText();



Der Ansatz ist gut und mit allParagraphStyles hatte ich es auch schon probiert, aber es scheitert wieder am String mit der selben Fehlermeldung ganz nach dem Zitat Motto vom M. Fischer:

Zitat Der String ist für Faule und funktioniert unter bestimmten Umständen.


Und damit gehts leider auch nicht:
Code
 
var SUCHE = myDocument.paragraphStyles.itemByName("Absatzformat1");
var ERSETZE = myDocument.paragraphStyles.itemByName("Absatzformat2");


*edit* ja gut damit gehts auch nicht, weil so das Objekt ausgegeben wird.. ich brauche dann eher sowas wie:

Code
var SUCHE = myDocument.paragraphStyles.itemByName("Absatzformat1").name 


Aber natürlich klappt das auch nicht..


als Antwort auf: [#444124]
(Dieser Beitrag wurde von painschen am 10. Jun 2010, 17:35 geändert)

Absatzformat wechseln

painschen
Beiträge gesamt: 48

11. Jun 2010, 11:18
Beitrag # 13 von 27
Beitrag ID: #444226
Bewertung:
(5346 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also langsam nervt mich das wirklich..

Code
	// config datei einlesen 
var CheckFile = File(myScriptPfadCfg + "/" + myScriptConfigStyleReplace);
CheckFile.open("r");
var CheckList = CheckFile.read();
CheckFile.close();
var myCheckList = CheckList.split('\n');

// datei durchgehen
var counterParagraphStylesGroups = myDocument.paragraphStyleGroups.count();

for (oneReplace=0;oneReplace<myCheckList.length; oneReplace++) {

for(x=0;x<counterParagraphStylesGroups;x++){
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByName(myDocument.paragraphStyleGroups[x].name).paragraphStyles.itemByName(String(myCheckList[oneReplace].split(';')[0])).name;
app.changeTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByName(myDocument.paragraphStyleGroups[x].name).paragraphStyles.itemByName(String(myCheckList[oneReplace].split(';')[1])).name;
try{
var StyleReplace = myDocument.changeText();
} catch(bug){}
}

}


Das klappt nicht mal in der Form und ich erhalte immer den Fehler 30477 (Fehlerzeichenfolge: Ungültiger Wert blablabla String erwartet aber "PB_Headline_9pt" erhalten.. das ist doch ein String - wieso nervt mich InDesign trotzdem damit?

Hab sogar String(); getestet..

:(


als Antwort auf: [#444195]
(Dieser Beitrag wurde von painschen am 11. Jun 2010, 11:19 geändert)

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12025

11. Jun 2010, 11:57
Beitrag # 14 von 27
Beitrag ID: #444230
Bewertung:
(5330 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
An welcher Stelle (Zeilennummer) taucht das Problem auf?
Existiert an der Stelle, wo die Zuweisung erfolgt, das angesprochene Absatzformat?

Viele Grüße
Martin




als Antwort auf: [#444226]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

11. Jun 2010, 13:35
Beitrag # 15 von 27
Beitrag ID: #444246
Bewertung:
(5311 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit dieser Version funktioniert das ganze wenn sich die Absatzformate in keiner Gruppe befinden (was also zeigt, dass die Absatzformate exisitieren)..

Anscheinend klappt das mit den Ordnern nicht ganz - wobei diese beim Alert-Test ausgegeben werden..

Weiß nicht ob das ein Syntex Fehler ist - wär schön wenn das jemand testen könnte..

Code
// config datei einlesen 
var CheckFile = File(myScriptPfadCfg + "/" + myScriptConfigStyleReplace);
CheckFile.open("r");
var CheckList = CheckFile.read();
CheckFile.close();
var myCheckList = CheckList.split('\n');

// suche starten
var counterParagraphStylesGroups = myDocument.paragraphStyleGroups.count();
for (i=0;i<myCheckList.length;i++) {
for(x=0;x<counterParagraphStylesGroups;x++){
try{
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByID(x).paragraphStyles.itemByName(myCheckList[i].split(';')[0]).name;
app.changeTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByID(x).paragraphStyles.itemByName(myCheckList[i].split(';')[1]).name;
var StyleReplace = myDocument.changeText();
} catch(bug){}
}
}


Martin Fischer: Der Fehler in jeder Version kommt aus folg. Zeilen:
Code
app.findTextPreferences.appliedParagraphStyle = .. 
app.changeTextPreferences.appliedParagraphStyle = ..



als Antwort auf: [#444230]
(Dieser Beitrag wurde von painschen am 11. Jun 2010, 13:38 geändert)
X

Aktuell

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
22.05.2019 - 23.05.2019

Effiziente Medienproduktion mit InDesign und Photoshop

München
Mittwoch, 22. Mai 2019, 09.30 Uhr - Donnerstag, 23. Mai 2019, 17.30 Uhr

Schulung, Seminar

Wie arbeiten Sie mit Colormanagement in InDesign? Wie gelangen Sie rascher zu einer flexiblen Dateivorlage? Welche Prozesse im Umgang mit Texten, Bildern oder Tabellen lassen sich eleganter gestalten, welche automatisieren? Wir zeigen Ihnen, wie Sie mit Profiwerkzeugen für Typo und Layout deutlich schneller und effizienter arbeiten können – auch im Team und mit Kunden!

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/zweitaegige-weiterbildung-zum-next-generation-publisher/

Zweitägige Weiterbildung zum Next Generation Publisher
Veranstaltungen
22.05.2019

München
Mittwoch, 22. Mai 2019, 13.52 Uhr

Schulung, Seminar

Die Schulung konzentriert sich auf die wirklich wichtigen Aufgaben in der Bildbearbeitung: Colormanagement, Farbkonvertierungen, Brillanz, Belichtung, Farbretusche, Freisteller, Schärfe und verlustfreie Bildkorrektur. Ein Schwerpunkt der Schulung liegt in der verlustfreien Bearbeitung von Bilddaten und bietet zudem den Ausblick auf Bildmontagen, das Anlegen von Farblooks und den Umgang mit dem RAW-Format an.

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/schulungen/schulung-photoshop-next-generation/

Photoshop Schulung für Fortgeschrittene
Hier Klicken