[GastForen Programme Print/Bildbearbeitung Adobe InDesign Variablen in Text wandeln per Script (IDCS3 WIN JS)

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

Variablen in Text wandeln per Script (IDCS3 WIN JS)

cwenet
Beiträge gesamt: 1088

23. Okt 2008, 17:05
Beitrag # 1 von 19
Bewertung:
(6549 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo.

ich habe Kolumentitel via Variable auf der Musterseite erzeugt. Nun möchte ich alle Variablen in Text wandeln, damit ich im Kolumnentitel ein Tab-Zeichen per Suchen und Ersetzen entfernen kann.
Wie läßt sich da via Script lösen?

Gruss
Christoph
X

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Martin Fischer
  
Beiträge gesamt: 12687

23. Okt 2008, 17:10
Beitrag # 2 von 19
Beitrag ID: #371677
Bewertung:
(6547 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Textvariablen haben eine property 'associatedInstances' (ein Array).
Diese 'TextVariableInstances' haben einen Befehl 'convertToText()'.
Das dürfte der gesuchte Befehl sein.


als Antwort auf: [#371675]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

cwenet
Beiträge gesamt: 1088

23. Okt 2008, 18:38
Beitrag # 3 von 19
Beitrag ID: #371699
Bewertung:
(6529 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Martin,

so habe ich jetzt etwas zusammengebastelt

Code
app.documents[0].textVariables.itemByName("kol1").convertToText() 


Leider wird statt dem Inhalt der Variable der Variablennamen ausgegeben. Hier: <kol1>

Hast Du eine Idee wie ich an den Inhalt ran komme?

Gruss
Christoph


als Antwort auf: [#371677]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Martin Fischer
  
Beiträge gesamt: 12687

23. Okt 2008, 18:44
Beitrag # 4 von 19
Beitrag ID: #371701
Bewertung:
(6527 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Christoph,

Du willst doch nicht die Textvariablen selbst in Text umwandeln (das geht auch nicht), sondern deren Umsetzung im Text. Deswegen hatte ich Dich oben auf die 'associatedInstances' hingewiesen. Stelle deren Anzahl fest und marschiere in einer Schleife rückwärts durch die Instanzen und konvertiere in Text:


Code
app.documents[0].textVariables.itemByName("kol1").associatedInstances[i].convertToText(); 



als Antwort auf: [#371699]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

cwenet
Beiträge gesamt: 1088

23. Okt 2008, 19:22
Beitrag # 5 von 19
Beitrag ID: #371707
Bewertung:
(6505 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sorry Martin,

irgendwie blicke ich das nicht:

Code
for(i = 0; i < app.activeDocument.TextVariableInstances.count (); i++){ 

app.documents[0].textVariables.itemByName("kol1").associatedInstances[i].convertToText();

}


Ich hab schon alles durchprobiert laut ExtendScript toolkit Objektmodell Hilfe.
Leider komme ich ich nicht weiter.

Kannst Du mir bitte nochmals weiterhelfen?
Danke.

Gruss
Christoph


als Antwort auf: [#371701]
(Dieser Beitrag wurde von Martin Fischer am 23. Okt 2008, 19:38 geändert)

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Martin Fischer
  
Beiträge gesamt: 12687

23. Okt 2008, 19:39
Beitrag # 6 von 19
Beitrag ID: #371708
Bewertung:
(6494 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Christoph,

hast Du meine Anweisung genau genug gelesen?
Da stand nicht ohne Grund etwas von rückwärts zählen.
Denn während der Ausführung verändert sich die Zahl der Instanzen.

Versuch's mal damit.
Code
for ( i = app.documents[0].textVariables.itemByName("kol1").associatedInstances.length-1; i >= 0; i-- ) 
app.documents[0].textVariables.itemByName("kol1").associatedInstances[i].convertToText() ;



als Antwort auf: [#371707]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

cwenet
Beiträge gesamt: 1088

23. Okt 2008, 19:51
Beitrag # 7 von 19
Beitrag ID: #371709
Bewertung:
(6487 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Martin,

dankeschön.
Das mit dem Rückwärtszählen habe ich gelesen. Aber es scheiterte bei mir schon an der Umsetzung.
Dein Codeschnipsel gibt jetzt ebenfalls den Variablennamen aus.
Ich bin meinem Wissen am Ende.
Hast Du noch eine Idee?

Danke

Christoph


als Antwort auf: [#371708]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Martin Fischer
  
Beiträge gesamt: 12687

23. Okt 2008, 22:38
Beitrag # 8 von 19
Beitrag ID: #371720
Bewertung:
(6432 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

bitte entschuldige meinen etwas barschen Ton vorhin.
Ich musste dringend weg, wollte Dich aber nicht im Regen stehen lassen.
Der Einsatz scheint nicht zu dem erwarteten Erfolg geführt zu haben.

> Dein Codeschnipsel gibt jetzt ebenfalls den Variablennamen aus.

Was heißt 'gibt jetzt ebenfalls den Variablennamen aus'?
Kannst Du eventuell einen Screenshot der Fehlermeldung schicken?

Das Codeschnipsel, das ein fertiges Skript ist, arbeitet gut für mich.
Alle Instanzen werden konvertiert.

Ich muss aber auch meine falsche Behauptung oben revidieren:

Zitat Du willst doch nicht die Textvariablen selbst in Text umwandeln (das geht auch nicht), sondern deren Umsetzung im Text.


Das ist Quatsch.
Natürlich geht das.
Und zwar genau so, wie Du es angegeben hast!

Code
app.documents[0].textVariables.itemByName("kol1").convertToText(); 


Ich habe keine Idee, warum das bei Dir nicht funktioniert.
Hast Du's mal auf der Benutzeroberfläche getestet, ob's da funktioniert?
1. Ein einzelnes Vorkommen der Variable markieren und 'in Text konvertieren';
2. die Variable im Definitionsmenü der Variablen auswählen und dort 'in Text konvertieren'.


als Antwort auf: [#371709]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

cwenet
Beiträge gesamt: 1088

24. Okt 2008, 08:22
Beitrag # 9 von 19
Beitrag ID: #371740
Bewertung:
(6385 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Zitat bitte entschuldige meinen etwas barschen Ton vorhin.

Geht in Ordnung. Nichts passiert.

Wenn ich die Variablen lose im Dokument platziere funktioniert es wunderbar.
Aber Variablen die in der Musterseite liegen werden nicht in Text umgewandelt sondern es wird der Variablennamen <kol1> ausgegeben.
Fehlermeldung gibt es keine.


Gruss
Christoph


als Antwort auf: [#371720]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Martin Fischer
  
Beiträge gesamt: 12687

24. Okt 2008, 09:07
Beitrag # 10 von 19
Beitrag ID: #371747
Bewertung:
(6379 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

Code
Aber Variablen die in der Musterseite liegen werden nicht in Text umgewandelt sondern es wird der Variablennamen <kol1> ausgegeben.  
Fehlermeldung gibt es keine

Ich bin mir immer noch unsicher, ob ich Dich richtig verstehe:
Statt dem Inhalt des Variablentext steht nach Ausführung der Skriptzeile dort, wo die Variable 'kol1' auf den Musterseiten platziert war '<kol1>'.
Auf den Layoutseiten hingegen steht korrekterweise der Inhalt der Variable.

Also hier auf dem Mac kann ich das nicht nachvollziehen.
Egal ob die Textvariable sich auf der Musterseite oder auf einer Layoutseite befindet, sie wird korrekt umgewandelt.

Ich hatte oben schon mal danach gefragt:
Hast Du die Konvertierung mal manuell über die Benutzeroberfläche versucht?
Ist das Ergebnis ein anderes als wenn Du das Skript ausführst?


als Antwort auf: [#371740]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

cwenet
Beiträge gesamt: 1088

24. Okt 2008, 09:25
Beitrag # 11 von 19
Beitrag ID: #371751
Bewertung:
(6374 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

nun habe ich die Konvertierung manuell durchgeführt. Um aber an ein Musterseitenobjekt dranzukommen, muss ich es erst manuell lösen. Dann funktioniert beides:
Das Script und die Funktionalitäten der Bedieneroberfläche.

Sind in Deinem Fall die Musterseitenobjekte immer noch mit der Musterseite verankert?

Gruss
Christoph


als Antwort auf: [#371747]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Martin Fischer
  
Beiträge gesamt: 12687

24. Okt 2008, 09:33
Beitrag # 12 von 19
Beitrag ID: #371753
Bewertung:
(6373 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Sind in Deinem Fall die Musterseitenobjekte immer noch mit der Musterseite verankert?

Ja.
Und probehalber habe ich den korrespondierenden Textrahmen auch mal gesperrt.
Das war für die Umwandlung keine Behinderung.


als Antwort auf: [#371751]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

cwenet
Beiträge gesamt: 1088

24. Okt 2008, 10:09
Beitrag # 13 von 19
Beitrag ID: #371763
Bewertung:
(6359 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Martin,

wenn ich z.B. die vorgefertigten Variablen wie Dateiname oder Datum verwende, dann funktioniert es bei mir auch.
Aber verwende ich "Laufende Kopfzeile (Absatzformat)" dann wird nur der Variablennamen "<kol1>" ausgegeben.

Christoph


als Antwort auf: [#371753]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Martin Fischer
  
Beiträge gesamt: 12687

24. Okt 2008, 10:47
Beitrag # 14 von 19
Beitrag ID: #371769
Bewertung:
(6347 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von Christoph wenn ich z.B. die vorgefertigten Variablen wie Dateiname oder Datum verwende, dann funktioniert es bei mir auch.
Aber verwende ich "Laufende Kopfzeile (Absatzformat)" dann wird nur der Variablennamen "<kol1>" ausgegeben.


Hoi!
Jetzt kommen wir dem Problem schon näher.
Ich hatte Dich stets missverstanden und Deinen Begriff 'Textvariablen' mit 'Textvariable mit benutzerdefiniertem Text' gleichgesetzt.

Anyway.
Das funktioniert hier auf dem Mac auch mit einer Textvariable, die ihren Inhalt von einem Absatzformat bezieht. Aber ich hätte mir für das Versagen eine einfachere Erklärung vorstellen können als bei benutzerdefiniertem Text: Woher soll eine eintsprechende auf der Musterseite platzierte AF-abhängige Variable nach der Konvertierung in Text ihren Inhalt beziehen, wenn auf der Musterseite kein entsprechender Inhalt zu finden ist (also Text mit dem AF).

Auf dem Mac stelle ich fest, dass die auf der Musterseite platzierte AF-abhängige Variable bei der erstmaligen Ausführung des Skripts die Konvertierung in Text nicht mitmacht und zunächst als Variable erhalten bleibt. Addiere ich neue Textseiten, die auf dieser Musterseite basieren, wird diese Variable ggf. wieder mit Inhalt aus dem entsprechenden AF gefüllt.
Auf den Textseiten hingegen wird die Variable, die auf der Textseite steht und nicht von der Musterseite kommt, korrekt in den Inhalt des entsprechenden Absatzes konvertiert.

Führe ich das Skript nochmals aus, dann löst sich die Textvariable auf der Musterseite in Luft auf. Es bleibt nichts zurück. Nicht einmal ein Platzhalter mit dem Namen der Textvariable.

Können andere WINdianer und andere MACianer dieses Phänomen in der dargestellten Weise bestätigen?


als Antwort auf: [#371763]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Neil77
Beiträge gesamt: 287

24. Okt 2008, 18:32
Beitrag # 15 von 19
Beitrag ID: #371854
Bewertung:
(6292 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

bei mir (Win-User) sieht es so aus:
Code
app.documents[0].textVariables.itemByName("kol1").convertToText(); 

wird ebenfalls die auf der Musterseite platzierte Variable in den Text "<kol1>" umgewandelt.
Auf den Textseiten steht jetzt entsprechend (da mit der Musterseite verknüpft) ebenfalls "<kol1>".

Was du schreibst, Martin, kann ich jedenfalls bei mir nicht so nachstellen (oder ich habe einen Punkt falsch verstanden).

Die Funktion convertToText wandelt hier zwar alle Instanzen in Text um - in diesem Fall gibt es aber in der Objekthierarchie nur eine Instanz, nämlich auf der Musterseite. Ich glaube, es führt wohl daher kein Weg daran vorbei, alle entsprechenden Textrahmen auf den einzelnen Seiten per Skript erst von der Musterseite zu lösen und nur an diesen Stellen in Text umzuwandeln.

Grüße,
Martin


als Antwort auf: [#371769]
(Dieser Beitrag wurde von Neil77 am 24. Okt 2008, 18:35 geändert)
X