I am newbie to ExtendScript So as the title says How to add UserString for a Marker object?
My code is as below, but it does not add UserString to the Markers.
var doc = app.ActiveDoc;
var flow = doc.MainFlowInDoc;
var tbl = 0;
var textItems = flow.GetText(Constants.FTI_MarkerAnchor);
var s = "Number of Comments: " + textItems.len.toString();
for (var i = 0; i < textItems.len; i += 1)
s = "Comment: " + textItems.obj.MarkerText + " @ " + textItems.obj.TextLoc.offset.toString() + "\n"
GetUniqueObject(textItems.obj.Unique).UserString = "Added by Dan"; // Will add more useful data here
Since you already have the Marker object with textItems.obj, you should be able to add the UserString directly like this:
textItems.obj.UserString = "Added by Dan";
You don't need the GetUniqueObject method because you already have the Marker object.
Check and see if the UserString persists, though. There was a bug where setting the UserString property with ExtendScript wouldn't persist after you quit FrameMaker. It does persist with FrameScript and the FDK. They may have fixed it, but I haven't tried it yet.
I works. Many thanks.
Thank you for marking my answer as correct. Did you check and see if the UserString value persists after you close the file and reopen it? I have had problems with this in the past.
Yes, it does persist, at least for the Marker objects.