[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: 1139

23. Okt 2008, 17:05
Beitrag # 1 von 19
Bewertung:
(7108 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: 12783

23. Okt 2008, 17:10
Beitrag # 2 von 19
Beitrag ID: #371677
Bewertung:
(7106 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: 1139

23. Okt 2008, 18:38
Beitrag # 3 von 19
Beitrag ID: #371699
Bewertung:
(7088 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: 12783

23. Okt 2008, 18:44
Beitrag # 4 von 19
Beitrag ID: #371701
Bewertung:
(7086 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: 1139

23. Okt 2008, 19:22
Beitrag # 5 von 19
Beitrag ID: #371707
Bewertung:
(7064 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: 12783

23. Okt 2008, 19:39
Beitrag # 6 von 19
Beitrag ID: #371708
Bewertung:
(7053 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: 1139

23. Okt 2008, 19:51
Beitrag # 7 von 19
Beitrag ID: #371709
Bewertung:
(7046 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: 12783

23. Okt 2008, 22:38
Beitrag # 8 von 19
Beitrag ID: #371720
Bewertung:
(6991 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: 1139

24. Okt 2008, 08:22
Beitrag # 9 von 19
Beitrag ID: #371740
Bewertung:
(6944 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: 12783

24. Okt 2008, 09:07
Beitrag # 10 von 19
Beitrag ID: #371747
Bewertung:
(6938 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: 1139

24. Okt 2008, 09:25
Beitrag # 11 von 19
Beitrag ID: #371751
Bewertung:
(6933 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: 12783

24. Okt 2008, 09:33
Beitrag # 12 von 19
Beitrag ID: #371753
Bewertung:
(6932 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: 1139

24. Okt 2008, 10:09
Beitrag # 13 von 19
Beitrag ID: #371763
Bewertung:
(6918 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: 12783

24. Okt 2008, 10:47
Beitrag # 14 von 19
Beitrag ID: #371769
Bewertung:
(6906 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:
(6851 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)

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Martin Fischer
  
Beiträge gesamt: 12783

24. Okt 2008, 18:56
Beitrag # 16 von 19
Beitrag ID: #371857
Bewertung:
(1077 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Antwort auf: 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.


So sehe ich das auch.
Ich fand das unterschiedliche Verhalten unter Win und auf Mac bemerkenswert.


als Antwort auf: [#371854]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

cwenet
Beiträge gesamt: 1139

26. Okt 2008, 13:40
Beitrag # 17 von 19
Beitrag ID: #371936
Bewertung:
(1022 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich konnte es jetzt auch nicht so nachvollziehen.

Ich löse zuvor alle entsprechenden Musterseitenobjekte hiermit:

http://www.hilfdirselbst.ch/foren/Objekte_auf_Musterseiten_P165121.html#165121

Danke auch hierfür.

Dann klappt auch das hier erarbeitete kleine Script. Wunderbar.

Grüße
Christoph


als Antwort auf: [#371857]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Martin Fischer
  
Beiträge gesamt: 12783

26. Okt 2008, 17:30
Beitrag # 18 von 19
Beitrag ID: #371952
Bewertung:
(998 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Ich löse zuvor alle entsprechenden Musterseitenobjekte hiermit:

Klar, in diesem Fall läuft unter Win wie auf Mac alles wie geschmiert.
Da ist auch der richtige, weil hier der einzige Weg.


als Antwort auf: [#371936]

Variablen in Text wandeln per Script (IDCS3 WIN JS)

Farbenspiel
Beiträge gesamt: 15

11. Jan 2012, 21:43
Beitrag # 19 von 19
Beitrag ID: #487729
Bewertung:
(432 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
der Thread ist zwar schon älter aber ich hatte das Problem jetzt auch, dass ich Variablen von einer importierten Datenquelle vergeben hatte und diese vergebenen Variablen zurück wandeln wollte, weil das Dokument als Vorlage dienen sollte.

Ich habe mir jetzt so geholfen, dass ich "ein zusammengeführtes Dokument" erstellt habe und diese Haupt-Seiten alle markiert und mit Rechtsklick wieder in eine Musterseite umgewandelt habe.
So war das Dokument wieder clean.
Nicht der beste Weg aber hat mich zum Ziel geführt.

Viele Grüße


als Antwort auf: [#371854]
X