[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:
(9109 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: 12783

9. Jun 2010, 20:28
Beitrag # 2 von 27
Beitrag ID: #444092
Bewertung:
(9083 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();



als Antwort auf: [#444067]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 09:26
Beitrag # 3 von 27
Beitrag ID: #444112
Bewertung:
(9043 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:
(9033 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: 12783

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


als Antwort auf: [#444112]

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12783

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


als Antwort auf: [#444113]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 10:18
Beitrag # 7 von 27
Beitrag ID: #444121
Bewertung:
(9013 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: 12783

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


als Antwort auf: [#444121]

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5319

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



als Antwort auf: [#444121]

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5319

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


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: 12783

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

> Oder man arbeitet mit allParagraphStyles

guter Hinweis!


als Antwort auf: [#444124]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 17:31
Beitrag # 12 von 27
Beitrag ID: #444195
Bewertung:
(8934 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:
(8875 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: 12783

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


als Antwort auf: [#444226]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

11. Jun 2010, 13:35
Beitrag # 15 von 27
Beitrag ID: #444246
Bewertung:
(8840 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

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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!