[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Text aus der Zwischenablage direkt im Skript verwenden?

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

Text aus der Zwischenablage direkt im Skript verwenden?

pixxxelschubser
Beiträge gesamt: 1708

7. Sep 2012, 17:49
Beitrag # 1 von 10
Bewertung:
(3877 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

siehe Überschrift: ist das unter Windows mit Javascript für ID (verschiedene Versionen ab CS3) irgendwie möglich?

Da mir kein wirklich guter Weg eingefallen ist, habe ich den folgenden Workaround verwendet (umständlich und ein bisschen von hinten durch die Brust ins Auge, aber führt vorerst auch zum Ziel)

- app.paste()
- einer Variable den Content der Story zuweisen und anschließend
- den nun überflüssigen Textrahmen wieder löschen und dann
- kann man den Inhalt der Variable in aller Ruhe „zerpflücken“ und an den notwendigen Stellen in den Dokumenten einpflegen

Meine Frage ist jetzt: Gibt es einen direkteren Weg? Etwa in der Art: definiere eine Variable mit dem (Text)-Inhalt der Zwischenablage?

Falls es für eine Antwort wichtig sein sollte – es werden lediglich die unformatierten Textinformationen benötigt.

Vielen Dank im Voraus
X

Text aus der Zwischenablage direkt im Skript verwenden?

Uwe Laubender
Beiträge gesamt: 5293

8. Sep 2012, 10:07
Beitrag # 2 von 10
Beitrag ID: #500560
Bewertung:
(3828 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, pixxxelschubser!

Da gibt's verschiedene Varianten, die Du probieren kannst.
Probiere mal folgende, die an Deine Methode thematisch anknüpft:

Das funktioniert aber nur, wenn die Stelle im Text wohin kopiert werden soll (Variable "myInsertionPoint") sich auf dem "activeSpread" des "LayoutWindows" der InDesign-Datei befindet.

Das folgende Beispiel verwendet die Eigenschaft "parentPage", das Script ist deswegen für InDesign CS5 (und höher).

Code
var myInsertionPoint = /*Hier die Stelle im Text definieren, wohin kopiert werden soll. Beispiel:*/ app.documents[0].stories[0].insertionPoints[0]; 
var spreadOfmyInsertionPoint = myInsertionPoint.parentTextFrames[0].parentPage.parent;
app.documents[0].layoutWindows[0].activeSpread = spreadOfmyInsertionPoint;

app.select(myInsertionPoint);
app.pasteWithoutFormatting();



als Antwort auf: [#500550]

Text aus der Zwischenablage direkt im Skript verwenden?

pixxxelschubser
Beiträge gesamt: 1708

8. Sep 2012, 10:54
Beitrag # 3 von 10
Beitrag ID: #500561
Bewertung:
(3818 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,
vielen Dank für deine Anregung.

Doch genau das möchte ich eben gerade nicht – etwas temporär einfügen, um es anschliessend (nach dem Laden in eine Variable) wieder zu löschen.

Dann könnte ich auch einen prompt () erzeugen, in den ich einfach nur den Inhalt der Zwischenablage hineinkopiere. Doch das sind auch schon wieder ein Tastenkürzel und ein Klick mehr.

Im Grunde genommen möchte ich einfach nur etwas Fleissarbeit verringern: Teil eines Textes kopieren, „zerpflücken“, in zwei Dokumenten verteilen und diese ausdrucken.


Vielleicht gibt es ja noch eine direkte Variante.


als Antwort auf: [#500560]

Text aus der Zwischenablage direkt im Skript verwenden?

drerol74
Beiträge gesamt: 504

8. Sep 2012, 11:37
Beitrag # 4 von 10
Beitrag ID: #500562
Bewertung:
(3795 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Pixxxelschubser,

du schreibst, ein Teil des Textes soll kopiert werden. Ist denn dieser Teil irgendwie ausgezeichnet? Ist er in einem der Indesign-Dokumente vorhanden? Wenn ja könntest du z.B. mit findGrep arbeiten:

var _results = app.activeDocument.findGrep();


Schöne Grüße
Roland


als Antwort auf: [#500561]

Text aus der Zwischenablage direkt im Skript verwenden?

WernerPerplies
Beiträge gesamt: 2725

8. Sep 2012, 11:57
Beitrag # 5 von 10
Beitrag ID: #500563
Bewertung:
(3783 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Roland,

ich vermute mal, dass der Inhalt aus der Zwischenablage von einem Fremdprogramm stammt.

Mit einer anderen Sprache (z. b. C#, Visual Basic oder ähnliches) wäre die Lösung kein Problem, aber für JavaScript fällt mir im Moment auch nichts ein.

Eventuell könnte man noch über eine temporäre Date gehen, aber dafür müsste man wissen, wie der Inhalt in die Zwischenablage kommt.


als Antwort auf: [#500562]

Text aus der Zwischenablage direkt im Skript verwenden?

pixxxelschubser
Beiträge gesamt: 1708

8. Sep 2012, 13:03
Beitrag # 6 von 10
Beitrag ID: #500565
Bewertung:
(3748 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner und Roland,

ja, der jeweils gleich aufgebaute Text wird aus mehreren Fremdprogrammen einfach nur in die Zwischenablage kopiert (und diesen Schritt kann der Sicherheit wegen leider auch nicht automatisieren).

Und prinzipiell funktioniert auch mein ganz oben beschriebener Weg über das Einfügen in einen temporären Textrahmen, der anschliessend wieder gelöscht wird. Ich wollte einfach nur wissen:
Gibt es einen Weg ohne dieses temporäre Einfügen/Löschen?

Vielleicht als Beispiel:
In Grep ist der Inhalt der Zwischenablage beim Einfügen mit ~C definiert. Beispielhaft ausgedrückt möchte ich jetzt lediglich sagen var MeinTextString = ~C

Wenn das nicht funktioniert, dann ist das kein Beinbruch, ich empfand nur meinen Workaround als etwas „schmutzig“.

Danke


als Antwort auf: [#500563]

Text aus der Zwischenablage direkt im Skript verwenden?

Uwe Laubender
Beiträge gesamt: 5293

8. Sep 2012, 14:09
Beitrag # 7 von 10
Beitrag ID: #500566
Bewertung:
(3723 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, pixxxelschubser!

Falls Du auf 'nem Mac unterwegs bist:

Vielleicht können ja die AppleScript-Experten etwas beitragen?
Ich könnte mir vorstellen, dass AppleScript den Inhalt des "Clipboards" einfangen und auswerten kann.

Mit einem doScript()-Aufruf könnte dann das AppleScript innerhalb Deines JavaScripts laufen.

Falls Du auf Windows unterwegs bist:

Möglicherweise gelingt Dir etwas mit der Einbindung von VBScript und einem doScript()-Aufruf.

Ist nur eine vage Idee von mir, da ich mich weder mit AppleScript, noch mit VBScript weiter auskenne…


als Antwort auf: [#500565]

Text aus der Zwischenablage direkt im Skript verwenden?

Uwe Laubender
Beiträge gesamt: 5293

8. Sep 2012, 14:10
Beitrag # 8 von 10
Beitrag ID: #500567
Bewertung:
(3721 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ah. Vergessen wir die AppleScript-Variante.
Du bist ja auf Windows unterwegs…


als Antwort auf: [#500566]

Text aus der Zwischenablage direkt im Skript verwenden?

Uwe Laubender
Beiträge gesamt: 5293

8. Sep 2012, 14:12
Beitrag # 9 von 10
Beitrag ID: #500568
Bewertung:
(3715 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Und doScript() funktioniert ja auch erst ab InDesign CS4


als Antwort auf: [#500567]

Text aus der Zwischenablage direkt im Skript verwenden?

pixxxelschubser
Beiträge gesamt: 1708

8. Sep 2012, 14:22
Beitrag # 10 von 10
Beitrag ID: #500570
Bewertung:
(3711 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,
wie ich im Eingangsposting bereits schrieb, ich bin auf Windows unterwegs.

Es haben sich ja mittlerweile schon einige Wissende zu Wort gemeldet. Ich befürchte fast, dass es wohl keinen direkten Weg der Variablenzuweisung zu geben scheint.

Und nein, ein zusätzliches VB-Skript wäre zwar sicher die saubere Art der Programmierung, aber da ich bereits eine funktionierende Variante besitze, hat der zusätzliche Aufwand ein bisschen etwas von „Perlen vor die Säue“.

Nichts desto trotz warte ich einfach noch ein wenig ab. Vielleicht gibt es ja doch eine nicht dokumentierte Javascript-Entsprechung für
Code
var MeinTextstring = ~C   //Inhalt der Zwischenablage 


<edit>
Unsere Antworten haben sich zeitlich überschnitten
</edit>


als Antwort auf: [#500566]
(Dieser Beitrag wurde von pixxxelschubser am 8. Sep 2012, 14:24 geändert)
X