[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Farbe in allen Absatzformaten per Skript ändern

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

Farbe in allen Absatzformaten per Skript ändern

pitware2005
Beiträge gesamt: 39

16. Mär 2016, 14:57
Beitrag # 1 von 11
Bewertung:
(3111 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

wer kann mir bitte kurz helfen. Warum ändert der mir hiermit die Farbe in den Absatzformaten nicht.

Code
function farbe() { 
var _color = app.documents.firstItem().allParagraphStyles;
for (var i = 1; i < _color.length; i++) {
_color[i].fillColor = 'Black';
}
}


Wenn ich den "composer" ändere geht es nur bei der Farbe will er nicht.
X

Farbe in allen Absatzformaten per Skript ändern

Martin Fischer
  
Beiträge gesamt: 12707

16. Mär 2016, 15:33
Beitrag # 2 von 11
Beitrag ID: #548065
Bewertung:
(3090 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

hier - in InDesign CS6 - funktioniert Dein Schnippsel.


Versuch's alternativ mit einem Swatches-Objekt:

Code
app.documents.firstItem().swatches.itemByName('Black'); 



als Antwort auf: [#548059]

Farbe in allen Absatzformaten per Skript ändern

pitware2005
Beiträge gesamt: 39

17. Mär 2016, 07:46
Beitrag # 3 von 11
Beitrag ID: #548088
Bewertung:
(3011 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke für Deine Antwort. Jetzt bin ich etwas überrascht, wieso funktioniert das bei Dir ohne weiteres?

Bei mir macht der wen ich es so im Toolkit ausführe nichts, wenn ich es allerdings in das andere Skript mit dem composer einsetzte dann geht es. Das komische ist, das der composer auf die gleiche Art geschrieben ist.
Es ist auch kein extra Code davor. Hier kannst Du den Code sehen.

Code
// Definieren der Globalen Variablen 
var myFile
var items = ["xxxx", "-", "xxxxx"];
var Result = Preferences();

// Voreinstellungsdialog
function Preferences() {
var myDialog = app.dialogs.add({name:"Preferences auswählen"}, {closeButton: false});
with(myDialog.dialogColumns.add()) {
var dropDownList = dropdowns.add({stringList: items, selectedIndex:0});
}
var myResult = myDialog.show();
if (myResult == true) {
var res = items[dropDownList.selectedIndex];
myDialog.destroy();
}
else {
myDialog.destroy();
exit();
}
return res;
}


if (Result == "xxxxxxx") {
myFile = "/_Includes/xxxxxxx.dll";
farbe();
}
else if (Result == "xxxxxxxxxxxxxxxx") {
alert("Das ausgewählte Setting steht leider im Moment nicht zur Verfügung!");
Preferences()
}
else if (Result == "xxxxxxx") {
myFile = "/_Includes/xxxxxxxxxx.dll";
main();
}
else {
alert("Das ausgewählte Setting steht leider im Moment nicht zur Verfügung!");
exit();
}


// Setzer in den Absatzformaten ändern.
function setzer() {
var _ps = app.documents.firstItem().allParagraphStyles;
for (var i = 1; i < _ps.length; i++) {
_ps[i].composer = 'Adobe-Absatzsetzer';
_ps[i].fillColor = 'Black';
}
main();
}
function farbe() {
var _pscolor = app.documents.firstItem().allParagraphStyles;
for (var i = 1; i < _pscolor.length; i++) {
_pscolor[i].fillColor = 'Black';
}
}

.......


Könntest Du mir bitte nochmal kurz helfen warum er das in diesem Skript mit ausführt aber wenn ich es extra laufen lassen möchte macht er es nicht? Wie Du oben sehen kannst ist da eigentlich kein Code davor was wichtig dafür wäre (denke ich zumindestens) und danach kommt nur eine Suchen Ersetzen Rutine.


als Antwort auf: [#548065]

Farbe in allen Absatzformaten per Skript ändern

Martin Fischer
  
Beiträge gesamt: 12707

17. Mär 2016, 09:07
Beitrag # 4 von 11
Beitrag ID: #548090
Bewertung:
(2982 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Eventuell liegt es an der InDesign-Version oder an der Plattform, dass etwas (noch) nicht so funktioniert wie erwartet.

Bist Du meinem Vorschlag oben gefolgt und hast es mit einem Swatches-Objekt statt einem String mit dem Farbnamen versucht?
Bleibt alles beim alten oder wird die Farbe angenommen?


als Antwort auf: [#548088]

Farbe in allen Absatzformaten per Skript ändern

Uwe Laubender
Beiträge gesamt: 5290

17. Mär 2016, 09:50
Beitrag # 5 von 11
Beitrag ID: #548094
Bewertung:
(2965 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
was den Composer angeht, könnten die internationalen Versionen der Strings helfen:

Code
International Strings:		German Strings: 
"$ID/HL Composer" "Adobe-Absatzsetzer"
"$ID/HL Single" "Adobe Ein-Zeilen-Setzer"
"$ID/HL Composer Optyca" "Globaler Adobe-Absatzsetzer"
"$ID/HL Single Optyca" "Globaler Adobe Ein-Zeilen-Setzer"



als Antwort auf: [#548088]

Farbe in allen Absatzformaten per Skript ändern

pitware2005
Beiträge gesamt: 39

17. Mär 2016, 09:56
Beitrag # 6 von 11
Beitrag ID: #548097
Bewertung:
(2960 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ja habe ich gerade. Da kommt im Toolkit das selbe bei raus "Ergebnis: undefined". Ich verwende Windows.

Was mich aber viel eher nervt bzw. wundert ist wie ich oben bereits geschrieben habe. Wenn ich diesen Snippet einzeln laufen lassen möchte geht es nicht. Sobald ich das in das obige Skript mit einsetze macht er es allerdings ohne Probleme. In dem Skript ist aber vor dem Snippet nichts wichtiges definiert bzw. angegeben, was den Unterschied ausmachen kann. Hast Du dazu vielleicht eine Idee?

@Uwe, es geht ja nicht um den Composer. Das war nur ein Beispiel. Es geht nur um die Zeichenfarbe.


als Antwort auf: [#548090]
(Dieser Beitrag wurde von pitware2005 am 17. Mär 2016, 09:57 geändert)

Farbe in allen Absatzformaten per Skript ändern

Quarz
Beiträge gesamt: 3518

17. Mär 2016, 10:28
Beitrag # 7 von 11
Beitrag ID: #548100
Bewertung:
(2937 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich schieb mich mal dazwischen mit einer Bitte.

Du hast mir im September 2006 ein schönes
Script 'gestrickt', mit dem ich Farbe einem
ZF zuweisen kann.
http://www.hilfdirselbst.ch/...i?post=253692#253692

Jetzt habe ich aber verschiedene ZFe mit
verschiedenen Farben.
(Zur schnelleren Wahrnehmung)

Ich habe mir jetzt für jede Farbe ein
extra Script abgespeichert. Aber - das
läßt sich doch sicher alles in einem
Script unterbringen.
Vielleicht ist es ja nicht so viel Arbeit ;-)


Gruß
Quarz
---------------------------
Win7 | InDesign CS6 ver 8.1



als Antwort auf: [#548090]

Farbe in allen Absatzformaten per Skript ändern

Martin Fischer
  
Beiträge gesamt: 12707

17. Mär 2016, 10:32
Beitrag # 8 von 11
Beitrag ID: #548101
Bewertung:
(2933 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Uwe Laubender ] was den Composer angeht, könnten die internationalen Versionen der Strings helfen:



Was bei der Farbe mit "$ID/Black" allerdings nicht funktioniert.
Weder als String noch als Swatches-Objekt. :-(

Es ist immer wieder mal eine Überraschung, den passenden Wertetyp für Objekte in InDesign und die passenden Werte zu finden.


als Antwort auf: [#548094]

Farbe in allen Absatzformaten per Skript ändern

Martin Fischer
  
Beiträge gesamt: 12707

17. Mär 2016, 10:36
Beitrag # 9 von 11
Beitrag ID: #548102
Bewertung:
(2933 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

das hat nur bedingt mit dem Thema hier zu tun.
Außerdem ist das Skript aus 2006 mit einer Brutalo-Keule (try-catch) gestrickt, wie ich es heute zur Lösung dieser Aufgabe nicht mehr machen würde.

Ich werde Dir gelegentlich ein auf Deine Bedrüfnisse hin angepasstes Skript schicken.


als Antwort auf: [#548100]

Farbe in allen Absatzformaten per Skript ändern

ToniMontanaa
Beiträge gesamt: 426

17. Mär 2016, 17:04
Beitrag # 10 von 11
Beitrag ID: #548119
Bewertung:
(2813 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Antwort auf: Was mich aber viel eher nervt bzw. wundert ist wie ich oben bereits geschrieben habe. Wenn ich diesen Snippet einzeln laufen lassen möchte geht es nicht. Sobald ich das in das obige Skript mit einsetze macht er es allerdings ohne Probleme. In dem Skript ist aber vor dem Snippet nichts wichtiges definiert bzw. angegeben, was den Unterschied ausmachen kann. Hast Du dazu vielleicht eine Idee?


Oben links im ESTK über der Nummerierung der Zeilen ist eine kleine Kette. Daneben kannst in einem Pop-Up-Menü das Programm auswählen in welchem das Skript ausgeführt werden soll. Wenn du nun im Skript selbst, z.B. nicht "#target InDesign" angibst und neben dieser Kette z.B. ExtendScript Toolkit CS6 steht passiert nichts. Du musst dann hier neben dieser Kette deine InDesign-Version einstellen.
Dann sollte es gehen.


als Antwort auf: [#548097]

Farbe in allen Absatzformaten per Skript ändern

Uwe Laubender
Beiträge gesamt: 5290

17. Mär 2016, 20:15
Beitrag # 11 von 11
Beitrag ID: #548128
Bewertung:
(2771 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
Versuch macht kluch. Das könnte man mal probieren:

Code
blablabla.fillColor = app.documents[0].colors.itemByName("Black"); 


Das wäre dann:

Code
var doc = app.documents[0]; 
var allParaStyleArray = doc.allParagraphStyles;
var length = allParaStyleArray.length;

for(var n=0;n<length;n++)
{
allParaStyleArray[n].properties =
{
fillColor : doc.colors.itemByName("Black")
};
};


Ich habe mal die properties property genommen, falls noch mehr Änderungen gemacht werden sollen. Funktioniert bei mir hier mit InDesign CS6 v8.1.0 auf OSX 10.10.3.


als Antwort auf: [#548101]
X