Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » applyConditions (Win10,CC2020,JSX)

applyConditions (Win10,CC2020,JSX)

cwenet
Beiträge gesamt: 1139

24. Jan 2020, 07:41
Bewertung:

gelesen: 2429

Beitrag als Lesezeichen
Guten Tag,

ich versuche gerade per Script an Cursorposition Text einzufügen. Gleichzeitig soll gleich eine Bedingung angewendet werden.

Code
var _BedingterText = app.activeDocument.conditions.itemByName ("MyCondition"); 
app.selection[0].applyConditions([_BedingterText]);
app.selection[0].contents = 'Hallo Welt';


Es wird nur der Text ausgegeben. Ohne Bedingung.

Bitte um Hilfe
Grüße
Christoph

applyConditions (Win10,CC2020,JSX)

Martin Fischer
  
Beiträge gesamt: 12783

24. Jan 2020, 08:18
Bewertung:

gelesen: 2419

Beitrag als Lesezeichen
Hallo Christoph,

einfache Frage vorneweg:
Steht die Kennzeichnung von Bedingtem Text bei Dir auf "Einblenden" oder "Einblenden und drucken"?

Bei mir funktioniert Dein Code.


Ansonsten könntest Du noch die Alternative zum Zuweisungsbefehl applyConditions() ausprobieren:

Code
app.selection[0].appliedConditions = [_BedingterText]; 


Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 24. Jan 2020, 08:19 geändert)

applyConditions (Win10,CC2020,JSX)

cwenet
Beiträge gesamt: 1139

24. Jan 2020, 09:30
Bewertung:

gelesen: 2403

Beitrag als Lesezeichen
Danke Martin,

bei mir steht die Bedingung generell auf "Ausblenden", da der Text beim Einfügen den Umbruch nicht stören darf.
Deine zusätzliche Codezeile schafft abhilfe.
Da klappt aber nur dann, wenn ich alle Bedingungen kurz einblende und dann wieder ausblende. Dann wird ach der neu hinzugefügte Text tatsächlich ausgeblendet.

Wie schaffe ich es, Text mit Bedingung von Anfang an, ausgeblendet einzufügen, ohne dass ich in der Palette "Beedingter Text" das "Auge" toggeln muss?

applyConditions (Win10,CC2020,JSX)

Martin Fischer
  
Beiträge gesamt: 12783

24. Jan 2020, 09:37
Bewertung:

gelesen: 2401

Beitrag als Lesezeichen
Versuche mal die Reihenfolge umzukehren:

1. erst Text einfügen und dann
2. dem eingefügten Text die Bedingung zuzuweisen.

Code
var _BedingterText = app.activeDocument.conditions.itemByName ("Markierung"); 
var str = 'Hallo Welt';
var len_str = str.length;
app.selection[0].contents = str;
app.selection[0].parent.characters.itemByRange(app.selection[0].index-len_str, app.selection[0].index-1).applyConditions([_BedingterText]);


Viele Grüße
Martin


applyConditions (Win10,CC2020,JSX)

cwenet
Beiträge gesamt: 1139

24. Jan 2020, 09:45
Bewertung:

gelesen: 2398

Beitrag als Lesezeichen
Besten Dank Martin,

so klappt es primstens.

Einen schönen Tag
Christoph