Skip to main content
marca12945532
Participant
March 26, 2018
Question

Insert superscript 2 in text field Illustrator Javascript scripting

  • March 26, 2018
  • 2 replies
  • 1246 views

Dear All,

I've been trying to add and remove certain pieces of text based on their font and whenever I need to add a certain piece of text back into it's original place again I need to insert a superscript 2 after this text.

This is the piece of code in which I add the text back in again:

if (textGroupItem.textRange.characterAttributes.textFont.toString().toLowerCase().match(regP attern)){

                textGroupItem.textRange.characters.removeAll()

                textGroupItem.textRange.characters.add(un + " - " + sm + "m" + "²")

}

This doens't give a superscript 2 but some kind of broken token as text.

So far i've also tried:

- translatePlaceholderText("c2b2")

- "2".sup()

-  <sup> 2</sup>

- textGroupItem.textRange.characterAttributes.baselineShift = height;  <-- height = 2 but this shifts the whole text item

How can you succesfully add a supercript 2 to a group of characters?

This topic has been closed for replies.

2 replies

marca12945532
Participant
March 26, 2018

Thanks a lot for this code. I can see that the baseline position of the text item is indeed NORMALBASELINE


But if I try to execute the code last character  of the text with: textGroupItem.textRange.characters[-1]

I get that this is undefined.

Is it possible to acess this last character and change just the baseline of that character?

pixxxelschubser
Community Expert
Community Expert
March 27, 2018

Hi marca12945532,

unfortunately, Illustrator Scripting is a bit more complicated in this regard.

One possibility

var aDoc = app.activeDocument;

aDoc.textFrames[0].textRange.characters[aDoc.textFrames[0].textRange.characters.length-1].characterAttributes.baselinePosition = FontBaselineOption.SUPERSCRIPT;

Have fun

Ten A
Community Expert
Community Expert
March 26, 2018

Here is a basic code of superscript.

app.selection[0].characters[1].characterAttributes.baselinePosition = FontBaselineOption.SUPERSCRIPT;