Hi, I am working with text adornments and referring the basicTextAdornment sample plugin from Indesign SDK.
Please have a look at below routine from the ITextAdornment.h interface:
/** Draw the text adornment.
Two important IShape flags must be observed:
IShape::kPrinting If set, indicates that we are printing.
IShape::kPreviewMode If set, indicates that we are previewing
printing to the screen, text adornments
that do not draw when printing should not
draw for this either
@param gd IN Pointer to the GraphicsData.
@param iShapeFlags IN The value of the flags parameter passed into IShape::Draw.
@param waxRun IN An interface on this wax run boss.
@param renderData An interface on this wax run boss. It can be nil, meaning the WaxRunis NOT a typical text run.
@param waxGlyphs IN An interface on this wax run boss. It can be nil, meaning the WaxRunis NOT a typical text run.
@param data IN pointer to optional ITextAdornmentData. It may be nil if no data is specified when the adornment was attached.
virtual void Draw(GraphicsData *gd, int32 iShapeFlags,
const ITextAdornmentData *data) = 0;
We can see that the value for the parameter 'iShapeFlags' can be set to either kPrinting or kPreviewMode, but I don't want the text adornments to be part of any one of them.
Can some one suggest how we can stop this?
Is there kPrinting
Copy link to clipboard
simple way is to check the value of the flag inside the Draw() method and return from the function if 'iShapeFlags' value corresponds to any of the above flags.