Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Text in Pfade umwandeln und Objektstil zuweisen

Text in Pfade umwandeln und Objektstil zuweisen

juma68
Beiträge gesamt: 31

4. Sep 2012, 10:43
Bewertung:

gelesen: 1794

Beitrag als Lesezeichen
Moin, moin...

Ich hab gerade ein Brett vorm Kopf, das ist bestimmt was ganz simples und ich weiß auch, wo der Fehler steckt, weiß aber nicht, wie ich den beheb.

Ich versuche gerade ein Script zu bauen (halb schon hier aus dem Forum kopiert), dass mir einen, mit einem Zeichenformat versehenen Text in Pfade umwandelt und diesem dann einen Objektstil zuweist. Klappt soweit auch, nur der Objektstil wird nur dem ersten Pfad zugewiesen. Ist ja auch klar, in der Variable myPolygon ist auch nur ein Objekt. (wird ja auch nur das erste angesprochen).

Code
//DISCRIPTION: Wandelt Texte in Pfade um und weist denen einen Objektstil zu 

#target Indesign
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;

var myDocument = app.activeDocument;
var myDialog = app.dialogs.add({name:"Text in Pfad umwandeln"});
var myWidth_left = 80;
var myWidth_right = 230;
var myObjekte = myDocument.textFrames;


//Listen fürs Dropdown
var myObjektformat = myDocument.objectStyles.everyItem().name;
myObjektformat.unshift("- Bitte auswählen -");
var myZeichenformat = myDocument.characterStyles.everyItem().name;
myZeichenformat.unshift("- Bitte auswählen -");

//Vorgaben auswählen
with (myDialog) {
with (dialogColumns.add()) {
var myDialogGruppe = dialogRows.add();
with (myDialogGruppe) {
with (dialogColumns.add() ) {
staticTexts.add( {staticLabel: "Zeichenstil auswählen:", minWidth: myWidth_left} );
staticTexts.add( {staticLabel: "Objektstil auswählen", minWidth: myWidth_left} );
}
with (dialogColumns.add() ) {
var myZeichenstil = dropdowns.add({stringList: myZeichenformat, selectedIndex: 0, minWidth: myWidth_right});
var myDropdown = dropdowns.add({ stringList: myObjektformat, selectedIndex: 0, minWidth: myWidth_right});

}
}
}
}

var myResult = myDialog.show();
if(myResult == true){
var myObjektwahl = myObjektformat[myDropdown.selectedIndex];
var myZeichenwahl = myZeichenformat[myZeichenstil.selectedIndex];

//Dialogbox aus Speicher löschen.
myDialog.destroy();

app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.appliedCharacterStyle = myZeichenwahl; // hier Zeichenformat angeben
var myResult = app.activeDocument.findText();
for (i = myResult.length-1; i >= 0; i--)
var myPolygon = myResult[i].createOutlines();
myPolygon[0].applyObjectStyle(app.documents[0].objectStyles.item(myObjektwahl), true); //hier Objektformat angeben
}


alert("Fertig");

Text in Pfade umwandeln und Objektstil zuweisen

Uwe Laubender
Beiträge gesamt: 5316

4. Sep 2012, 12:20
Bewertung:

gelesen: 1763

Beitrag als Lesezeichen
Hallo, juma68!

Mach doch einfach 'ne Schleife durch alle Objekte in "myPolygon" und weise dabei den Objektstil zu:

Code
for(var n=0;n<myPolygon.length;n++){ 
myPolygon[n].applyObjectStyle(app.documents[0].objectStyles.item(myObjektwahl), true); //hier Objektformat angeben
};

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

Text in Pfade umwandeln und Objektstil zuweisen

juma68
Beiträge gesamt: 31

4. Sep 2012, 13:12
Bewertung:

gelesen: 1740

Beitrag als Lesezeichen
Macht er leider auch nur den ersten... dazu brauch ich wohl erst irgendwie ne Sammlung der Polygone...

Text in Pfade umwandeln und Objektstil zuweisen

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Sep 2012, 14:30
Bewertung:

gelesen: 1707

Beitrag als Lesezeichen
Wenn Sie die Schleife nur über den Befehl
Code
		var myPolygon = myResult[i].createOutlines(); 

laufen lassen, können Sie nicht erwarten, dass der Befehl
Code
myPolygon[0].applyObjectStyle(app.documents[0].objectStyles.item(myObjektwahl),  true); 

mehr als einmal ausgeführt wird.

Das ist ein Paradebeispiel dafür, warum Debugger einen Code Schritt für Schritt durchgehen können.

Text in Pfade umwandeln und Objektstil zuweisen

juma68
Beiträge gesamt: 31

4. Sep 2012, 16:38
Bewertung:

gelesen: 1674

Beitrag als Lesezeichen
Ich sag ja: Brett vorm Kopf! :-) Aber jetzt hab ich's...
Ich bin aber auch noch blutiger Anfänger (und werd das wohl auch die nächsten 10 Jahre bleiben), wie man bestimmt an meinem Stil sieht.
Ich hab letztens Ihr Tutorial gesehen zum Scripten, super, danke, das hat mir echt vieles erklärt, was ich vorher nicht verstanden hab.