Class: PolylineAnnotation

PSPDFKit.Annotations.PolylineAnnotation

Polyline annotations are used to hand draw polylines on a page. They can contain any number of sides defined by the polyline vertices.

Polyline annotations with transparent fill color are only selectable around their visible lines. This means that you can create a page full of polyline annotations while annotations behind the polyline annotation are still selectable.

Right now, polyline annotations are implemented using SVG images. This behavior is subject to change.

Constructor

new PSPDFKit.Annotations.PolylineAnnotation(args)

Display a polyline on a page.

Parameters:
Name Type Description
args Object

An object of the members.

Example

Create a polyline annotation that displays a triangle

var annotation = new PSPDFKit.Annotations.PolylineAnnotation({
  pageIndex: 0,
  points: PSPDFKit.Immutable.List([
      new PSPDFKit.Geometry.Point({ x: 25,  y: 25 }),
      new PSPDFKit.Geometry.Point({ x: 35,  y: 30 }),
      new PSPDFKit.Geometry.Point({ x: 30,  y: 55 }),
  ]),
  strokeWidth: 10,
  boundingBox: new PSPDFKit.Geometry.Rect({
    left: 20,
    top: 20,
    width: 20,
    height: 40,
  }),
});

Extends

Members




Members

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

(nullable) customData: Object

Annotations can store additional user-specified data.

PSPDFKit 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.

Type:
  • Object
Example

Adding a new PSPDFKit.Annotations.EllipseAnnotation with custom data attached:

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

(nullable) fillColor: PSPDFKit.Color

A PSPDFKit.Color to fill the interior of closed shapes (ellipses, rectangles and polygons) or start and / or end line caps of open shapes (lines and polylines).

Type:
Default Value:
  • null

hidden: boolean

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

Type:
  • boolean
Default Value:
  • false

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

(nullable) lineCaps: LineCaps

An object with start and / or end entries for line caps.

Line caps can have one of these values: "square", "circle", "diamond", "openArrow", "closedArrow", "butt", "reverseOpenArrow", "reverseClosedArrow" or "slash".

If the fillColor field is provided, its value is used as fill color for the line cap interior.

Type:
  • LineCaps

(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

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

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

A list of points.

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

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

(nullable) strokeColor: PSPDFKit.Color

A PSPDFKit.Color for the shape lines

Type:
Default Value:
  • Color.BLUE

(nullable) strokeDashArray: Array.<number>

Optional dash pattern used to draw the shape lines for dashed line style.

Type:
  • Array.<number>

strokeWidth: number

The width of the line in page size pixels. By default, we use values between 1 and 40 in the UI.

The stroke width will scale when you zoom in.

Type:
  • number
Default Value:
  • 5

updatedAt: Date

The date of last annotation update.

Type:
  • Date