Skip to main content
sebinkur
Known Participant
March 15, 2017
Answered

How could I add Existing Variables into a Paragraph using ExtendScripts?

  • March 15, 2017
  • 1 reply
  • 454 views

Hi,

Based on a specific paragraph tag, I would like to add an existing variable (Name and Fmt) as part of the paragraph's text. I am able to add strings as part of paragraph texts at the moment.

I was looking up extend scripts to do this, however I am quite not sure how to add a variable. I could only find instances of updating variable values and so on.

Any help would be appreciated.

Giving a brief overview of my intention: (For example; Variable = "Part Number: 0x404"

                            var newpgf = doc.NewSeriesObject(Constants.FO_Pgf, pgf);

                            var attribute= doc.GetNamedObject(Constants.FO_VarFmt, "Variable");

           

                            var textLoc = new TextLoc();

                            textLoc.obj = newpgf;

                            textLoc.offset = -1;

                         

                                                               doc.AddText(textLoc, "( ");

                                                                         

Something like this:                            -> doc.AddText(textLoc, attribute.Fmt);       // Not Sure how to do this, possibly link the variable text range to this Text Location?

                                                               doc.AddText(textLoc, " )");               

Expected Paragraph:

                                             <Previous Para>

          new Para:                    (Part Number: 0x404 )

Thanks,
Sebin

This topic has been closed for replies.
Correct answer frameexpert

#target framemaker

var doc = app.ActiveDoc;

// Get the paragraph object where the cursor is.

var pgf = doc.TextSelection.beg.obj;

// Make a text loc object.

var textLoc = new TextLoc (pgf, 0);

// Add the open parens.

textLoc = doc.AddText (textLoc, "(");

// Add the variable.

doc.NewAnchoredFormattedVar ("Variable", textLoc);

// Add the trailing parens.

textLoc = new TextLoc (pgf, Constants.FV_OBJ_END_OFFSET - 1);

textLoc = doc.AddText (textLoc, ")");

Make sure you test that your variable format exists (in my example, the variable format name is "Variable"). Please let me know if you have any questions or comments. -Rick

1 reply

frameexpert
Community Expert
frameexpertCommunity ExpertCorrect answer
Community Expert
March 15, 2017

#target framemaker

var doc = app.ActiveDoc;

// Get the paragraph object where the cursor is.

var pgf = doc.TextSelection.beg.obj;

// Make a text loc object.

var textLoc = new TextLoc (pgf, 0);

// Add the open parens.

textLoc = doc.AddText (textLoc, "(");

// Add the variable.

doc.NewAnchoredFormattedVar ("Variable", textLoc);

// Add the trailing parens.

textLoc = new TextLoc (pgf, Constants.FV_OBJ_END_OFFSET - 1);

textLoc = doc.AddText (textLoc, ")");

Make sure you test that your variable format exists (in my example, the variable format name is "Variable"). Please let me know if you have any questions or comments. -Rick

sebinkur
sebinkurAuthor
Known Participant
March 15, 2017

Thank you, Rick. It worked!