[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Text in Pfade umwandeln und Objektstil zuweisen

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

Text in Pfade umwandeln und Objektstil zuweisen

juma68
Beiträge gesamt: 31

4. Sep 2012, 10:43
Beitrag # 1 von 5
Bewertung:
(1795 mal gelesen)
URL zum Beitrag
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");

X

Text in Pfade umwandeln und Objektstil zuweisen

Uwe Laubender
Beiträge gesamt: 5316

4. Sep 2012, 12:20
Beitrag # 2 von 5
Beitrag ID: #500371
Bewertung:
(1764 mal gelesen)
URL zum Beitrag
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
};



als Antwort auf: [#500363]

Text in Pfade umwandeln und Objektstil zuweisen

juma68
Beiträge gesamt: 31

4. Sep 2012, 13:12
Beitrag # 3 von 5
Beitrag ID: #500376
Bewertung:
(1741 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Macht er leider auch nur den ersten... dazu brauch ich wohl erst irgendwie ne Sammlung der Polygone...


als Antwort auf: [#500371]

Text in Pfade umwandeln und Objektstil zuweisen

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Sep 2012, 14:30
Beitrag # 4 von 5
Beitrag ID: #500379
Bewertung:
(1708 mal gelesen)
URL zum Beitrag
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.


als Antwort auf: [#500376]

Text in Pfade umwandeln und Objektstil zuweisen

juma68
Beiträge gesamt: 31

4. Sep 2012, 16:38
Beitrag # 5 von 5
Beitrag ID: #500383
Bewertung:
(1675 mal gelesen)
URL zum Beitrag
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.


als Antwort auf: [#500379]
X