When you create a marker you need to specify the marker type identifier. If you are using an built-in type, use the name found in the English user interface.
Use GetNamedObject() to get this identifier. Use the appropriate marker type name. (This is a document and not a session property because of the fact that new types can be added to a given document.)
You only need to set the marker type properties for a built-in type if you want to change them. For example, add the following line of code to change the type name as displayed in the user interface.
markerType.Name = "My glossary";
Use GetNamedObject() to get this identifier. Use the appropriate marker type name. (This is a document and not a session property because of the fact that new types can be added to a given document.)
function createMarker(doc, pgf, offset, type, text) {
var tLoc, marker, markerType;
tLoc = new TextLoc(pgf, offset);
marker = doc.NewAnchoredObject(Constants.FO_Marker, tLoc);
markerType = doc.GetNamedObject(Constants.FO_MarkerType, type);
var tLoc, marker, markerType;
tLoc = new TextLoc(pgf, offset);
marker = doc.NewAnchoredObject(Constants.FO_Marker, tLoc);
markerType = doc.GetNamedObject(Constants.FO_MarkerType, type);
marker.MarkerTypeId = markerType;
marker.MarkerText = text;
return 1;
}
marker.MarkerText = text;
return 1;
}
You only need to set the marker type properties for a built-in type if you want to change them. For example, add the following line of code to change the type name as displayed in the user interface.
markerType.Name = "My glossary";
Hi Debra,
ReplyDeletethank you very much for posting the new solution - it works great.
I tried to solve the problem by myself. But unfortunately I took the name of the German user interface resp. the wrong English name "Crossref" (without the dash).
So thanks again, Andreas