Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Fehlende Eigenschaften beim Skripting?

Fehlende Eigenschaften beim Skripting?

Kai Rübsamen
Beiträge gesamt: 4684

4. Dez 2013, 10:51
Bewertung:

gelesen: 6151

Beitrag als Lesezeichen
Hallo!

Mir ist leider kein besserer Beitragstitel eingefallen ;-)

In den vergangenen Tagen bin ich über folgende zwei Probleme gestolpert:

1. Ich möchte ein Tabellenformat anlegen u. im Skript die verschiedenen Eigenschaften definieren.
Es klappt alles, bis auf alternative Zellenfüllungen, also das was ich unter Tabellenoptionen > Abwechselnde Muster > Abwechsend einstellen kann.

Damit das funktioniert, werden die Parameter für Erste u. nächste Zeile, aber auch eine Auswahl aus dem Dropdown-Menü Abwechselnde Muster benötigt.

Als lokale Abweichung kann ich das in etwa so zuweisen:
Code
    myTable.alternatingFills = AlternatingFillsTypes.alternatingRows; 
myTable.startRowFillColor =
myTable.endRowFillColor =


Hinterlege ich die Eigenschaften im Tabellenformat, wird mir der Wert für Erste und nächste Zeile eingetragen, es wird jedoch nicht das abwechselnde Muster aktiviert.

Fragen:
a. Mache ich etwas falsch?
b. Wenn nein, was ist der Workaround?
c. Ich hatte versucht, die abwechselnde Flächen beim ersten Mal lokal zuzuweisen u. dann die lokale Abweichung in das Format zu übernehmen, also ein "redefine style" > Das scheint auch nicht zu gehen?

2. Ich versuche in einem Format Aufzählungszeichen anzulegen:
Hier scheitert es daran, dass es keine Optionen für Einzug links, Einzug erste Zeile zu geben scheint? Ich schaffe es auch nicht, ein anderes Aufzählungszeichen als den Bullet auszuwählen. Ich würde hier das Qudrat, Unicode Wert '25A0' benötigen.

Frage:
a. Sind die 3 Optionen per Skript im AF hinterlegbar?

Danke.

Gruß Kai Rübsamen

Fehlende Eigenschaften beim Skripting?

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Dez 2013, 11:37
Bewertung:

gelesen: 6129

Beitrag als Lesezeichen
Zu 1.

Das ist wirklich seltsam. Das hier scheint aber zu funktionieren:
Code
#target indesign 

main();

function main() {
var doc = app.activeDocument;
var t = doc.tableStyles.item("Table Style 1");
var c1 = doc.colors[1];
var c2 = doc.colors[2];

t.startRowFillColor = c1;
t.endRowFillColor = c2;
t.startRowFillCount = 1;
t.endRowFillCount = 1;

t.startColumnFillColor = c1;
t.endColumnFillColor = c2;
t.startColumnFillCount = 1;
t.endColumnFillCount = 1;

t.columnFillsPriority = false;

}


wahlweise dann

Code
t.columnFillsPriority = true; 


(Dieser Beitrag wurde von Gerald Singelmann am 4. Dez 2013, 11:38 geändert)

Fehlende Eigenschaften beim Skripting?

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Dez 2013, 11:50
Bewertung:

gelesen: 6119

Beitrag als Lesezeichen
Zu 2.

das hier scheint zu funktionieren:

Code
#target indesign 

main();

function main() {
var doc = app.activeDocument;
var ps = doc.paragraphStyles.item("nu");


ps.bulletChar.bulletsFont = "Zapf Dingbats";
ps.bulletChar.characterType = BulletCharacterType.UNICODE_WITH_FONT;
ps.bulletChar.characterValue = 0x2799;

ps.bulletsAndNumberingListType = ListType.BULLET_LIST;

ps.leftIndent = "15 mm";
ps.firstLineIndent = "-7.5 mm";

}

Fehlende Eigenschaften beim Skripting?

Kai Rübsamen
Beiträge gesamt: 4684

4. Dez 2013, 12:24
Bewertung:

gelesen: 6085

Beitrag als Lesezeichen
zu 1: Im Adobe Beispielskript wird zwar AlternatingFillsTypes.alternatingRows, aber nicht "FillCount" angegeben. Das scheint hier aber der wichtige Part zu sein.

Das klappt also schon mal. Danke :)

Gruß Kai Rübsamen

Fehlende Eigenschaften beim Skripting?

Kai Rübsamen
Beiträge gesamt: 4684

4. Dez 2013, 12:33
Bewertung:

gelesen: 6077

Beitrag als Lesezeichen
zu 2: Gero, sehr gut. Das klappt auch. Danke.

Was hab ich falsch gemacht:
1. Ich habe die Eigenschaft characterType nicht gefunden
2. Ich habe die Eigenschaft characterValue als String eingegeben
3. Ich habe die Einzüge verzweifelt unter bullets gesucht, sie sind aber – logisch – eine Eigenschaft des Absatzes u. tauchen nur noch einmal zusätzlich im Dialog für bullets auf.

Gruß Kai Rübsamen

Fehlende Eigenschaften beim Skripting?

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Dez 2013, 13:22
Bewertung:

gelesen: 6041

Beitrag als Lesezeichen
AlternatingFillsTypes.alternatingRows ist eine Eigenschaft der Tabelle, aber nicht des Tabellenformats.
Im Format wirkt eine Kombo aus fillCount und columnFillsPriority (da ja sowohl die rowFillCounts als auch die columnFillCounts größer 0 sein können)

Fehlende Eigenschaften beim Skripting?

Kai Rübsamen
Beiträge gesamt: 4684

4. Dez 2013, 13:33
Bewertung:

gelesen: 6028

Beitrag als Lesezeichen
Antwort auf: AlternatingFillsTypes.alternatingRows ist eine Eigenschaft der Tabelle, aber nicht des Tabellenformats.

aha. Das war mir bisher so nicht klar. Danke.

Offensichtlich bin ich nicht alleine mit diesem Problem: http://forums.adobe.com/message/5879229#5879229

Gruß Kai Rübsamen

Fehlende Eigenschaften beim Skripting?

Kai Rübsamen
Beiträge gesamt: 4684

6. Dez 2013, 13:55
Bewertung:

gelesen: 5928

Beitrag als Lesezeichen
Dirk Becker hat die Tage empfohlen, dass man mehrere Eigenschaften am besten über die properties zuweisen soll.

Kann mir jemand erklären, warum hier der characterType nicht honoriert wird?

Code
 var bC = ps.bulletChar; 
bC.properties = {bulletsFont: "Zapf Dingbats", characterType: BulletCharacterType.UNICODE_WITH_FONT, characterValue: 0x25A0};


Gruß Kai Rübsamen

(Dieser Beitrag wurde von Kai Rübsamen am 6. Dez 2013, 13:55 geändert)

Fehlende Eigenschaften beim Skripting?

Dirk Becker
Beiträge gesamt: 193

6. Dez 2013, 18:52
Bewertung:

gelesen: 5890

Beitrag als Lesezeichen
Meine erste Vermutung war, dass noch der bulletsFontStyle fehlt. Das war's dann aber auch nicht (gerade mit CS5 probiert).
Andere Reihenfolge? Fehlanzeige.
ListType im Absatzformat? auch nichts.

Code
var ps = app.activeDocument.paragraphStyles.add(); 
ps.properties = {
bulletsAndNumberingListType: ListType.BULLET_LIST,
bulletChar: {
characterValue: 0x25A0,
characterType: BulletCharacterType.UNICODE_WITH_FONT,
bulletsFont: "Zapf Dingbats", bulletsFontStyle: "Regular",
}
};


Selbst wenn man das properties Objekt an add() übergibt, wird der characterType ignoriert, die anderen Werte kommen an.
Beim Snippet funktioniert es dagegen. Das entsprechenden XML sieht deutlich anders aus:

<BulletChar BulletCharacterType="UnicodeWithFont" BulletCharacterValue="9632"/>
<BulletsFont type="string">Zapf Dingbats</BulletsFont>
<BulletsFontStyle type="string">Regular</BulletsFontStyle>

Die Font-Attribute sind hier aus dem BulletChar herausgewandert und stehen direkt im Absatzformat.

Ich würde sagen, Sie haben einen Bug gefunden.
Also erweitern wir meine Empfehlung, über die properties zu gehen, besser um "wenn es funktioniert"...

Grüße,
Dirk Becker

Fehlende Eigenschaften beim Skripting?

Uwe Laubender
Beiträge gesamt: 5316

7. Dez 2013, 10:07
Bewertung:

gelesen: 5853

Beitrag als Lesezeichen
Hallo, Dirk!

Dein von Dir geposteter Schnipsel funktioniert aber schon bei Dir, oder?

Ich hab's gerade eben getestet (InDesign CS5.5 v7.5.3 auf OSX 10.6.8).
Also bei mir tut's das…

Bei Kay's Schnipsel fehlt mir irgendwie die Definition der Variable ps.

Falls das nur ein neues Absatzformat ohne Parametrierung sein sollte (add()-Methode), dann kann Kays Schnipsel nicht funktionieren, weil der Listentyp grundsätzlich dann noch auf "Ohne" steht.

Wobei ich jetzt nicht genau weiß, was mit "funktionieren" hier gemeint ist.
Gehen wir mal den Fall von Kai Schritt für Schritt durch (mit Screenshots auf die Auswirkungen)

1. Das Absatzformat wird dem Dokument hinzugefügt:
Code
var ps = app.documents[0].paragraphStyles.add(); 

Ergebnis in Screenshot 1

2. Die Property bulletChar wird in eine Variable geschrieben, diese Variable wird mit Eigenschaften über properties gefüttert:

Code
var ps = app.documents[0].paragraphStyles.add(); 

var bC = ps.bulletChar;

bC.properties = {
bulletsFont: "Zapf Dingbats",
characterType: BulletCharacterType.UNICODE_WITH_FONT,
characterValue: 0x25A0
};

Ergebnis in Screenshot 2

Da der Listentyp noch nicht bestimmt wurde, hat das noch keine Auswirkungen auf den formatierten Text.

3. Den Listentyp kann man natürlich dann noch definieren.
Entweder in der add()-Methode am Anfang:

Code
var ps = app.documents[0].paragraphStyles.add({bulletsAndNumberingListType:ListType.BULLET_LIST}); 


Oder nachher mithilfe der Variablen ps:

Code
ps.bulletsAndNumberingListType=ListType.BULLET_LIST; 


Ergebnis (für beide Methoden gleich) in Screenshot 3

Ich für meinen Teil kann da beim besten Willen keinen Bug entdecken…
*****
Mit herzlichem Gruß,
Uwe Laubender

Anhang:
ScreenShot1_AufzaehlungszeichenUndNummerierung.png (85.4 KB)   ScreenShot2_AufzaehlungszeichenUndNummerierung.png (85.6 KB)   ScreenShot3_AufzaehlungszeichenUndNummerierung.png (89.2 KB)

Fehlende Eigenschaften beim Skripting?

Uwe Laubender
Beiträge gesamt: 5316

7. Dez 2013, 10:18
Bewertung:

gelesen: 5849

Beitrag als Lesezeichen
Auch mit CS5 v7.0.4 getestet.
Bei mir funktioniert das…
*****
Mit herzlichem Gruß,
Uwe Laubender

Fehlende Eigenschaften beim Skripting?

Dirk Becker
Beiträge gesamt: 193

7. Dez 2013, 11:54
Bewertung:

gelesen: 5820

Beitrag als Lesezeichen
Hallo,

das Script zeigte nur den letzten Stand meiner vergeblichen Versuche. Der characterType kommt nach wie vor nicht an, zumindest beim ersten Ausführen der Zuweisung.

Also:
Code
$.writeln(ps.bulletChar.characterType==BulletCharacterType.UNICODE_WITH_FONT ? "gut" : "schlecht"); 


Im Absatzformat-Dialog kann man das leider nicht erkennen - Adobe hat den "bearbeiten" Knopf im Bullet-Dialog eingespart.

Grüße,
Dirk

Fehlende Eigenschaften beim Skripting?

Uwe Laubender
Beiträge gesamt: 5316

7. Dez 2013, 13:27
Bewertung:

gelesen: 5791

Beitrag als Lesezeichen
Danke, Dirk!

Jetzt kann ich's nachvollziehen…

Bei der Zuweisung per properties{} wird zwar UNICODE_WITH_FONT definiert, aber der Wert wird trotzdem nicht geändert, bleibt also beim Default von UNICODE_ONLY bestehen.
*****
Mit herzlichem Gruß,
Uwe Laubender

Fehlende Eigenschaften beim Skripting?

Kai Rübsamen
Beiträge gesamt: 4684

7. Dez 2013, 13:30
Bewertung:

gelesen: 5790

Beitrag als Lesezeichen
Hallo!

Danke für eure Beiträge. Ich habe gerade Dirks Schnipsel getestet > funktioniert bei mir ebenfalls nicht.

Zitat Bei Kay's Schnipsel fehlt mir irgendwie die Definition der Variable ps.

Der Aufbau ergibt sich aus Geralds Beispiel oben.

Antwort auf: Ich für meinen Teil kann da beim besten Willen keinen Bug entdecken…

Lass mal Geralds Variante oben laufen. In beiden Fällen hat es 'BulletCharacterType.UNICODE_WITH_FONT'. Dann schau dir mal jeweils das erzeugte Zeichen an. Im ersten Fall wird das Zeichen aus der Zapf Dingbats genommen, im zweiten Fall eben nicht.

Gruß Kai Rübsamen

Fehlende Eigenschaften beim Skripting?

Uwe Laubender
Beiträge gesamt: 5316

7. Dez 2013, 14:32
Bewertung:

gelesen: 5764

Beitrag als Lesezeichen
Danke, Kai!
Ja. Unsere beiden Posts müssen sich überschnitten haben.

Und richtig: Das Bullet-Zeichen kommt nach wie vor aus der Grundschrift.

Im Screenshot sieht man's ja auch.
Das kleine "u" am Zeichen. Auch noch "rot" eingefärbt, das aber nur sichtbar, wenn's nicht angewählt ist.

Hatte wohl Tomaten auf den Augen (und noch keinen Kaffee) heute morgen…
*****
Mit herzlichem Gruß,
Uwe Laubender

Fehlende Eigenschaften beim Skripting?

Kai Rübsamen
Beiträge gesamt: 4684

7. Dez 2013, 16:47
Bewertung:

gelesen: 416

Beitrag als Lesezeichen
Antwort auf: Hatte wohl Tomaten auf den Augen (und noch keinen Kaffee) heute morgen…

Das find ich dann besser so, als wenn die Beiträge gar keine Antwort erhalten :)
Schönen Abend.

Gruß Kai Rübsamen