Nutrient Web SDK

v0.0.0-dev

Class StampAnnotation

The Nutrient Web SDK supports stamp annotations and comes with some out-of-the-box stamp annotations available.

Class

Example

Create a stamp annotation

var annotation = new NutrientViewer.Annotations.StampAnnotation({
pageIndex: 0,
stampType: 'Custom',
title: 'Example Stamp',
subtitle: 'Example Stamp Annotation',
color: new Color({ r: 0, g: 51, b: 79 }),
boundingBox: new NutrientViewer.Geometry.Rect({ left: 10, top: 20, width: 150, height: 40 }),
});

See Also

Hierarchy

AnnotationStampAnnotation

Constructors

  • Parameters

    options
    Partial<{ … }>
    Optional

Properties

{ … } | null
PropertyDescription
onPageClose
onPageHidden
onPageOpen
onPageVisible
onPointerDown
onPointerEnter
onPointerLeave
onPointerUp
{ cache: string } | { attach: string }

    | "normal"
    | "multiply"
    | "screen"
    | "overlay"
    | "darken"
    | "lighten"
    | "colorDodge"
    | "colorBurn"
    | "hardLight"
    | "softLight"
    | "difference"
    | "exclusion"

The blend mode defines how the color of the annotation will be applied to its background.

Default Value

"normal"

Position of this annotation on the page. It's necessary that this spans all visible points of the annotation, otherwise hit testing and other features may not work.

canReply

Optional
boolean

canSetGroup

OptionalReadonly
boolean

This property defines whether the user has permission to edit the group of this annotation.

It is only available when collaboration permissions is enabled on Server-Backed deployments.

The color of a stamp annotation.

The date of the annotation creation.

string | null

The name of the creator of the annotation. This is a general purpose string which can easily be spoofed and might not reflect the actual creator of the annotation.

Record<string, unknown> | null

Annotations can store additional user-specified data.

NutrientViewer will not use or evaluate customData in the UI directly. You have full control over this property. For new annotations, this defaults to null.

customData will be stored as JSON through JSON.serialize() and JSON.parse(), and so must be a plain JSON-serializable object.

Example

Adding a new EllipseAnnotation with custom data attached:

const annotation = new NutrientViewer.Annotations.EllipseAnnotation({
pageIndex: 0,
boundingBox: new NutrientViewer.Geometry.Rect({
top: 10,
left: 10,
width: 100,
height: 100
}),
customData: {
circleId: "my-circle"
}
});

font

Since 1.14.0
string | null

Font family name (e.g. "Helvetica", "Arial").

Server-backed mode requires Document Engine 1.16.0 or later. On earlier Document Engine versions, this property is ignored.

fontColor

Since 1.14.0

Text color.

Server-backed mode requires Document Engine 1.16.0 or later. On earlier Document Engine versions, this property is ignored.

fontSize

Since 1.14.0
number | null

Font size in points.

Server-backed mode requires Document Engine 1.16.0 or later. On earlier Document Engine versions, this property is ignored.

group

Optional
string | null

This property is used to define the permission scope for this annotation.

It is only available when collaboration permissions is enabled on Server-Backed deployments.

boolean

If set, do not display or print the annotation or allow it to interact with the user.

Default Value

false
string

A unique identifier to describe the annotation. When an annotation is created in the UI, the viewer has to generate a unique ID.

When changes are saved to the underlying annotation provider, we call Instance#ensureChangesSaved to make sure the annotation has been persisted from the provider.

imageAttachmentId

Since 1.14.0
string | null

Reference to an attachment created via instance.createAttachment().

Server-backed mode requires Document Engine 1.16.0 or later. On earlier Document Engine versions, this property is ignored.

imageContentType

Since 1.14.0
string | null

MIME type of the attached image (e.g. "image/png").

Server-backed mode requires Document Engine 1.16.0 or later. On earlier Document Engine versions, this property is ignored.

imagePosition

Since 1.14.0
{ align: "left" | "center" | "right"; row: number } | null

Controls where the image is placed within the stamp text flow. row is the number of text lines rendered above the image (0 = image at top, before all text; clamped to [0, lineCount]). align is the horizontal alignment within the image row. Only applies when multiline is true and imageAttachmentId is set.

Server-backed mode requires Document Engine 1.16.0 or later. On earlier Document Engine versions, this property is ignored.

PropertyDescription
align
row

isBold

Since 1.14.0
boolean | null

Whether the text is bold. null means unspecified (renderer decides).

Server-backed mode requires Document Engine 1.16.0 or later. On earlier Document Engine versions, this property is ignored.

isDeletable

OptionalReadonly
boolean

This property defines whether this annotation can be deleted or not. The value of this field depends on the set of collaboration permissions defined in the JWT token.

It is only available when collaboration permissions is enabled on Server-Backed deployments.

isEditable

OptionalReadonly
boolean

This property defines whether this annotation can be edited or not. The value of this field depends on the set of collaboration permissions defined in the JWT token.

It is only available when collaboration permissions is enabled on Server-Backed deployments.

isItalic

Since 1.14.0
boolean | null

Whether the text is italic. null means unspecified (renderer decides).

Server-backed mode requires Document Engine 1.16.0 or later. On earlier Document Engine versions, this property is ignored.

boolean

The annotation flag that prevents the annotation from being modified.

Default Value

false
boolean

The annotation flag that prevents the annotation content from being modified.

Default Value

false

multiline

Since 1.14.0
boolean | null

When true, the stamp title is rendered as multiline text with custom font properties instead of the standard single-line uppercase stamp layout. Use \n in title for line breaks.

Server-backed mode requires Document Engine 1.16.0 or later. On earlier Document Engine versions, this property is ignored.

string | null

An optional field that may be used to identify the annotation.

By default, we'll set that to the same value as the automatically generated Annotation#id.

boolean

The annotation flag that prevents the annotation from being printed.

Default Value

false
boolean
string | null

An optional note that can be set on any annotation.

This value is displayed in the Nutrient Web SDK UI for all annotations except NoteAnnotation, TextAnnotation, WidgetAnnotation and CommentMarkerAnnotation.

boolean

The annotation flag that prevents the annotation from being rendered in the UI.

The annotation may still be part of the printed page, depending of the value of the Annotations.Annotation#noPrint flag.

Default Value

false
boolean

When set, the annotation will not scale up in the page when it's zoomed in. The flag doesn't have an effect when the page is zoomed out to a zoom level less than 1.

Default Value

false
number

A transparency value that is applied to the complete annotation. The value is capped between 0 and 1 inclusive.

Default Value

1
number

The page index on which the annotation is placed. It's important to notice that an annotation can only ever be on one page. If you create for example an ink annotation with lines on two pages, two annotation records will be created.

pageIndex is zero-based and has a maximum value of totalPageCount - 1.

number | null

When the annotation is extracted directly from a PDF file, the pdfObjectId refers to the identifier that was used in the PDF document.

This ID is optional since newly created annotations using the SYNCProvider annotation provider won't have a pdfObjectId assigned.

Default Value

null
boolean

The annotation flag that makes the annotation read only.

Default Value

false
number

The counter-clockwise rotation value in degrees relative to the rotated PDF page. Inserting an annotation with a rotation value of 0 will make it appear in the same direction as the UI appears, when no NutrientViewer.ViewState#pagesRotation is set.

Stamp annotations support free rotation using integers between 0° and 359°. Negative values or values above 359 are normalized to this interval. Attempting to use non-integer values will result in an error.

Default Value

0

    | "Approved"
    | "NotApproved"
    | "Draft"
    | "Final"
    | "Completed"
    | "Confidential"
    | "ForPublicRelease"
    | "NotForPublicRelease"
    | "ForComment"
    | "Void"
    | "PreliminaryResults"
    | "InformationOnly"
    | "Rejected"
    | "Accepted"
    | "InitialHere"
    | "SignHere"
    | "Witness"
    | "AsIs"
    | "Departmental"
    | "Experimental"
    | "Expired"
    | "Sold"
    | "TopSecret"
    | "Revised"
    | "RejectedWithText"
    | "Custom"

One of the predefined stamp types. Can be any of:

  • Approved
  • NotApproved
  • Draft
  • Final
  • Completed
  • Confidential
  • ForPublicRelease
  • NotForPublicRelease
  • ForComment
  • Void
  • PreliminaryResults
  • InformationOnly
  • Rejected
  • Accepted
  • InitialHere
  • SignHere
  • Witness
  • AsIs
  • Departmental
  • Experimental
  • Expired
  • Sold
  • TopSecret
  • Revised
  • RejectedWithText
  • Custom

Default Value

"Custom"
string | null

An optional annotation subject, representing a short description of the subject being addressed by the annotation. This property has no effect on the annotation rendering.

string | null

The sub text of a custom stamp annotation.

string | null

The main text of a custom stamp annotation.

The date of last annotation update.

string

Immutable Record API

24
  • Returns a new instance of this Record type with all values set to their default values.

    Returns

    this
  • Returns a new instance of this Record type with the value for the specific key set to its default value.

    Type Parameters

    K
    extends keyof { … }

    Parameters

    keyK

    Returns

    this
  • Parameters

    otherunknown

    Returns

    boolean
  • Returns the value associated with the provided key, which may be the default value defined when creating the Record factory function.

    If the requested key is not defined by this Record type, then notSetValue will be returned if provided. Note that this scenario would produce an error when using Flow or TypeScript.

    Type Parameters

    K
    extends keyof { … }

    Parameters

    keyK

    Returns

    { … }[K]
  • Parameters

    keyPathIterable<unknown>
    notSetValueunknown
    Optional

    Returns

    unknown
  • Parameters

    keyunknown

    Returns

    boolean
  • Parameters

    ...collections
    Partial<{ … }>[]

    Returns

    this
  • Parameters

    ...collections
    (Iterable<[string, unknown], any, any> | Partial<{ … }>)[]

    Returns

    this
  • Parameters

    keyPathIterable<unknown>
    ...collections
    (Iterable<[string, unknown], any, any> | Partial<{ … }>)[]

    Returns

    this
  • Parameters

    merger(previous?: unknown, next?: unknown, key?: string) => unknown
    ...collections
    (Iterable<[string, unknown], any, any> | Partial<{ … }>)[]

    Returns

    this
  • Parameters

    keyPathIterable<unknown>
    ...collections
    (Iterable<[string, unknown], any, any> | Partial<{ … }>)[]

    Returns

    this
  • Parameters

    merger(previous?: unknown, next?: unknown, key?: string) => unknown
    ...collections
    (Iterable<[string, unknown], any, any> | Partial<{ … }>)[]

    Returns

    this
  • Type Parameters

    K
    extends keyof { … }

    Parameters

    keyK
    value
    { … }[K]

    Returns

    this
  • Deeply converts this Record to equivalent native JavaScript Object.

    Note: This method may not be overridden. Objects with custom serialization to plain JS may override toJSON() instead.

    Returns

    { … }
  • Shallowly converts this Record to equivalent native JavaScript Object.

    Returns

    { … }
  • Returns

    Keyed<string, unknown>
  • Type Parameters

    K
    extends keyof { … }

    Parameters

    keyK
    updater
    (value: { … }[K]) => { … }[K]

    Returns

    this
  • Parameters

    keyPathIterable<unknown>
    notSetValueunknown
    updater(value: unknown) => unknown

    Returns

    this
  • Parameters

    keyPathIterable<unknown>
    updater(value: unknown) => unknown

    Returns

    this
  • Note: Not all methods can be used on a mutable collection or within withMutations! Only set may be used mutatively.

    Parameters

    mutator(mutable: this) => unknown

    Returns

    this

    See Also

    • Map#withMutations