Class: InkAnnotation

PSPDFKit.Annotations.InkAnnotation

Ink annotations are used for free hand drawings on a page. They can contain multiple segments (see the definition of lines below). Points within the same segment are connected to a line.

Ink annotations are only selectable around their visible lines. This means that you can create a page full of line annotations while annotations behind the ink annotation are still selectable.

Right now, ink annotations are implemented using SVG images. This behavior is object to change.

Constructor

new PSPDFKit.Annotations.InkAnnotation(args)

Display free hand drawings on a page.

Parameters:
Name Type Description
args Object

An object of the members.

Example

Create an ink annotation that displays a cross

const annotation = new PSPDFKit.Annotations.InkAnnotation({
  pageIndex: 0,
  lines: PSPDFKit.Immutable.List([
    PSPDFKit.Immutable.List([
      new PSPDFKit.Geometry.DrawingPoint({ x: 5,  y: 5 }),
      new PSPDFKit.Geometry.DrawingPoint({ x: 95, y: 95}),
    ]),
    PSPDFKit.Immutable.List([
      new PSPDFKit.Geometry.DrawingPoint({ x: 95, y: 5 }),
      new PSPDFKit.Geometry.DrawingPoint({ x: 5,  y: 95}),
    ])
  ]),
  boundingBox: new PSPDFKit.Geometry.Rect({
    left: 0,
    top: 0,
    width: 100,
    height: 100,
  }),
});

Extends

Members




Members

blendMode: string

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

Type:
  • string
Default Value:
  • "normal"

boundingBox: PSPDFKit.Geometry.Rect

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.

Type:

createdAt: Date

The date of the annotation creation.

Type:
  • Date

(nullable) creatorName: string

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.

Type:
  • string

id: 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 PSPDFKit.Instance#ensureAnnotationSaved to make sure the annotation has been persisted from the provider.

Type:
  • string

isDrawnNaturally: boolean

PSPDFKit's Natural Drawing mode. This value will currently not effect rendering on PSPDFKit for Web.

Type:
  • boolean
Default Value:
  • false

A list of line segments. Every segment consists again of a list of points with additional intensity information.

The two nested lists are required since one ink annotation can consist of multiple lines. Within one segment, points will be connected using lines or curves.

We use PSPDFKit.Geometry.DrawingPoint for an additional intensity value (usually the pressure of a pointer device) that is used to reconstruct the naturally drawn image. If a device without intensity is used, the default intensity of 0.5 will be used.

If no lines are present, the annotation will not be visible.

Type:
Default Value:
  • PSPDFKit.Immutable.List() Empty list

(nullable) name: string

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 PSPDFKit.Annotations.Annotation#id.

Type:
  • string

noPrint: boolean

The annotation flag that prevents the annotation from being printed.

Type:
  • boolean
Default Value:
  • false

noView: 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 PSPDFKit.Annotations.Annotation#noPrint flag.

Type:
  • boolean
Default Value:
  • false

opacity: number

An optional note that can be set on any annotation.

This value is not displayed in the PSPDFKit for Web UI yet.

Type:
  • number
Default Value:
  • 1

pageIndex: 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.

Type:
  • number

(nullable) pdfObjectId: number

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.

Type:
  • number
Default Value:
  • null

strokeColor: PSPDFKit.Color

A PSPDFKit.Color for the visible line

Type:
Default Value:
  • Color.BLACK

updatedAt: Date

The date of last annotation update.

Type:
  • Date