Skip to main content
Legend
August 17, 2017
Answered

Need tiny AS-help for an easy task in Illustrator

  • August 17, 2017
  • 1 reply
  • 447 views

Hello Illustrator-Scripter,

we use Illu rarely, so I dont got much expirience in scripting that applictaion, so I beg u guys for some tiny lines of code:


My script runs in InD, and delivers a string to the pastboard, calling illustrator and opening a template-document. This document contains a textbox with an temp string "00000 Institut".

Task:

Find the textbox, overwrite the text in the textbox with pastboard-text.

Problem:

Im too unskilled to address the box/content.

Options:

I could modify the template: If in Illustrator is some sort of sriptlabel, ID or tag, to find and select the textbox.

Here we go:

My document is already open and active, thats the bit:

tell application "Adobe Illustrator"

      set theTemplate to "/Volumes/srvmar101_01/myfile.ai"

      open theTemplate

       activate

      set newFP to "/Volumes/srvmar101_01/mynewfile.ai"

      -- ??????   

      save current document in newFP

end tell

This topic has been closed for replies.
Correct answer pixxxelschubser

Hi.

Ich kann die keine Antwort in Applescript geben.

Das direkte Arbeiten mit der Zwischenablage ist meiner Meinung nach nicht unbedingt die beste und problemloseste Variante um Text zwischen Programmen der Suite hin- und herzutransportieren. Der kompliziertere aber wohl sicherere Weg dürfte BridgeTalk sein.

Hatte ich schon erwähnt, dass ich keine Crosspostings mag?

Aber jetzt egal. Hier eine kurze [JS] - Variante zum Einfügen von Text aus der Zwischenablage.

Voraussetzungen:

Text in der Zwischenablage und ein geöffnetes Dokument in Illustrator mit einem TextFrame (Inhalt egal) aber mit Namen "00000 Institut" (ohne die Anführungszeichen)

#target illustrator

var aDoc = app.activeDocument;

aDoc.selection = null;

app.paste ();

var txt = aDoc.textFrames[0].contents;

aDoc.textFrames[0].remove();

var destFrame = aDoc.textFrames.getByName("00000 Institut");

destFrame.contents = txt;

Viel Spass noch

Und verlinke doch bitte deine Crosspostings untereinander. Dann können sich die Helfer vorher überzeugen, ob ihre Antwort überhaupt noch einen Sinn macht - oder ob sie für die Tonne wäre, weil sie in ähnlicher Form bereits im (oder in den) anderen Forum/Foren gegeben wurde.

1 reply

pixxxelschubser
Community Expert
pixxxelschubserCommunity ExpertCorrect answer
Community Expert
August 17, 2017

Hi.

Ich kann die keine Antwort in Applescript geben.

Das direkte Arbeiten mit der Zwischenablage ist meiner Meinung nach nicht unbedingt die beste und problemloseste Variante um Text zwischen Programmen der Suite hin- und herzutransportieren. Der kompliziertere aber wohl sicherere Weg dürfte BridgeTalk sein.

Hatte ich schon erwähnt, dass ich keine Crosspostings mag?

Aber jetzt egal. Hier eine kurze [JS] - Variante zum Einfügen von Text aus der Zwischenablage.

Voraussetzungen:

Text in der Zwischenablage und ein geöffnetes Dokument in Illustrator mit einem TextFrame (Inhalt egal) aber mit Namen "00000 Institut" (ohne die Anführungszeichen)

#target illustrator

var aDoc = app.activeDocument;

aDoc.selection = null;

app.paste ();

var txt = aDoc.textFrames[0].contents;

aDoc.textFrames[0].remove();

var destFrame = aDoc.textFrames.getByName("00000 Institut");

destFrame.contents = txt;

Viel Spass noch

Und verlinke doch bitte deine Crosspostings untereinander. Dann können sich die Helfer vorher überzeugen, ob ihre Antwort überhaupt noch einen Sinn macht - oder ob sie für die Tonne wäre, weil sie in ähnlicher Form bereits im (oder in den) anderen Forum/Foren gegeben wurde.

DBLjanAuthor
Legend
August 17, 2017

Erstmal vielen Dank.

Zum Thema Crossposting: Ich würde schon selbst den Thread beenden, je nachdem wo die Antwort zuerst kommt. Außerdem weiß ich nicht, wie aktiv HDS so auf Illu reagiert.

Das Pasteboard habe ich ja nur als Workaround, da ich die Textbox nicht selbst füllen, meinen Kollegen aber ein Apfel+V zumuten konnte – der String residiert also auch irgendwo in einer Variablen.

Da ich mehr Mühe mit JS habe und das Script nur auf OSX benötigt wird, nutze ich AS, und kann dann auch gut diversen Applikationenn 'Bescheid' sagen. Ich werde mich mal probieren, anhand deines JS eine Ableitung für AS zu machen.

Aber dazu eine Frage: "TextFrame (Inhalt egal) aber mit Namen "00000 Institut" (ohne die Anführungszeichen)"

Wo vergebe ich den Namen für den frame in Illu? Oder meintest du TextFrame mit Inhalt "00000 Institut"?

DBLjanAuthor
Legend
August 17, 2017

So, bin jetzt mit deinen Hilfen/Stichwörtern text frames und contents und google erfolgreich gewesen.

set myframe to text frames of current document

set contents of item 1 of myframe to mynewtext

Auch wenn das nach zwei lausigen Zeilen aussieht, ohne Starthilfe hätte das nicht geklappt :-)