[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:
(6969 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: 12280

9. Jun 2010, 20:28
Beitrag # 2 von 27
Beitrag ID: #444092
Bewertung:
(6943 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:
(6903 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:
(6893 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: 12280

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

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

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

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

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

10. Jun 2010, 10:49
Beitrag # 11 von 27
Beitrag ID: #444127
Bewertung:
(6847 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:
(6794 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:
(6735 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: 12280

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

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
10.06.2020

Die smarte PDF-Workflow-Lösung für Druckereien

Ortsunabhängig
Mittwoch, 10. Juni 2020, 10.00 - 10.30 Uhr

Webinar

In diesem kostenlosen ca. halbstündigen Webinar stellen wir Ihnen das neueste Produkt aus dem Hause Impressed vor: Der Impressed Workflow Server (IWS) ist eine automatisiert arbeitende PDF-Workflow-Lösung für Druckereien mit einer zentralen, Datenbank-gestützten Jobverwaltung und einer Browser-basierten Jobsteuerung. Die Bedienoberfläche des IWS ermöglicht eine Übersicht über die aktuellen in der Produktion befindlichen Dateien und kann deren weiteren Verlauf steuern. Der IWS automatisiert und standardisiert somit die Produktion.

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

https://impressed-workflow-server.de/

Der Impressed Workflow Server (IWS)
Veranstaltungen
15.06.2020 - 16.06.2020

Digicomp Academy AG, Küchengasse 9, 4051 Basel
Montag, 15. Juni 2020, 08.30 Uhr - Dienstag, 16. Juni 2020, 17.00 Uhr

Kurs

Adobe Experience Design, kurz XD ist das neue Programm für UX/UI-Design. Mit XD lassen sich visuelles Design und klickbare Prototypen nahtlos verbinden. Lernen Sie die wichtigsten Funktionen vom Entwurf am Bildschirm bis zum online geteilten Prototypen.

Preis: CHF 1'400.–
Dauer: 2 Tage

Nein

Organisator: https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/web-publishing/adobe-xd-cc/kurs-adobe-xd-basic

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/web-publishing/adobe-xd-cc/kurs-adobe-xd-basic

Neuste Foreneinträge


Text an ersten Absatz anhängen (CC2020, WIN10, JSX)

Skript Formate in Formatgruppen umbenennen

Achtung Adobe CC: Am 15.06.2020 sind 820 Schriftschnitte weg !

Verpacken per Skript

Win 10 - ext. HD

Gepunktete Kontur, nach innen versetzt

Belichter-Passer Problem bei 2 Jahre alten Gerät

Wiederholte Aufforderung zum Sicherheitsupdate 2020-003 für High Sierra 10.13.6

Interessante WebSite für macOS gefunden

Umriss Anzeige einer Schrift in Negativ
medienjobs