[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:
(5606 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: 12028

9. Jun 2010, 20:28
Beitrag # 2 von 27
Beitrag ID: #444092
Bewertung:
(5580 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:
(5540 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:
(5530 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: 12028

10. Jun 2010, 09:50
Beitrag # 5 von 27
Beitrag ID: #444114
Bewertung:
(5531 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: 12028

10. Jun 2010, 09:54
Beitrag # 6 von 27
Beitrag ID: #444115
Bewertung:
(5523 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:
(5510 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: 12028

10. Jun 2010, 10:36
Beitrag # 8 von 27
Beitrag ID: #444123
Bewertung:
(5501 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: 4390

10. Jun 2010, 10:39
Beitrag # 9 von 27
Beitrag ID: #444124
Bewertung:
(5497 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: 4390

10. Jun 2010, 10:41
Beitrag # 10 von 27
Beitrag ID: #444125
Bewertung:
(5494 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: 12028

10. Jun 2010, 10:49
Beitrag # 11 von 27
Beitrag ID: #444127
Bewertung:
(5484 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:
(5431 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:
(5372 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: 12028

11. Jun 2010, 11:57
Beitrag # 14 von 27
Beitrag ID: #444230
Bewertung:
(5356 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:
(5337 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
03.06.2019

Nürnberg
Montag, 03. Juni 2019, 09.30 Uhr

Schulung, Seminar

Freisteller zählen seit den Anfangsjahren der elektronischen Bildbearbeitung zu den wichtigsten EBV-Techniken. Im Lauf der Jahre haben sich verschiedene Techniken entwickelt, und auch Photoshop hat mit zahlreichen Freistell-Werkzeugen die Arbeit mit Freistellern vereinfacht. In diesem Seminar lernen Sie die wichtigsten Freistell- und Maskierungstechniken kennen, um Ihre Bilddaten schnell und effizient freizustellen.

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/schulung-freistellen-tipps-und-tricks/

Freistellen – die besten Strategien, Tipps, Tricks
Veranstaltungen
03.06.2019 - 04.06.2019

Düsseldorf
Montag, 03. Juni 2019, 09.30 Uhr - Dienstag, 04. Juni 2019, 17.30 Uhr

Schulung, Seminar

Unsere Schulung „Zweitägige Weiterbildung zum Cleverprinting-Reinzeichner“ bietet allen Anwendern, die in Agenturen oder freiberuflich als Reinzeichner bzw. in der Reinzeichnung arbeiten, topaktuelles Grafik- und PrePress-Fachwissen rund um das Thema „Druckdatenerstellung mit InDesign, Photoshop, Acrobat“.

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/zweitaegige-weiterbildung-zum-cleverprinting-reinzeichner/

Zweitägige Weiterbildung zum Cleverprinting-Reinzeichner
Hier Klicken