Class Ink
This class represents an Ink annotation.
Inheritance
Implements
Namespace: PSPDFKit.Pdf.Annotation
Assembly: PSPDFKit.dll
Syntax
public sealed class Ink : IAnnotation
Properties
AnnotationType
The type of the annotation.
Declaration
public AnnotationType AnnotationType { get; }
Property Value
Type | Description |
---|---|
AnnotationType |
BackgroundColor
Optional background Windows.UI.Color that will fill the complete bounding box.
Declaration
public Color? BackgroundColor { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<Windows.UI.Color> |
BlendMode
The blend mode to use when rendering.
Declaration
public BlendMode BlendMode { get; set; }
Property Value
Type | Description |
---|---|
BlendMode |
BoundingBox
The bounding box of the annotation within the page.
Declaration
public Rect BoundingBox { get; set; }
Property Value
Type | Description |
---|---|
Windows.Foundation.Rect |
CreatedAt
The date of the annotation creation.
Declaration
public DateTimeOffset CreatedAt { get; set; }
Property Value
Type | Description |
---|---|
System.DateTimeOffset |
CreatorName
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.
Declaration
public string CreatorName { get; set; }
Property Value
Type | Description |
---|---|
System.String |
CustomData
Annotations can store additional user-specified data.
PSPDFKit does not use or evaluate CustomData
in the UI directly.
You have full control over this property.
For a new annotation, this defaults to a null object.
Declaration
public JsonObject CustomData { get; set; }
Property Value
Type | Description |
---|---|
Windows.Data.Json.JsonObject |
Id
A unique identifier to describe the annotation.
Declaration
public string Id { get; set; }
Property Value
Type | Description |
---|---|
System.String |
IsDrawnNaturally
This value will currently not effect rendering on PSPDFKit for UWP.
Declaration
public bool IsDrawnNaturally { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
IsSignature
Indicates whether the ink annotation is a signature.
Declaration
public bool IsSignature { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
Lines
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. 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.
Declaration
public IList<IList<DrawingPoint>> Lines { get; set; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.IList<System.Collections.Generic.IList<DrawingPoint>> |
LineWidth
The width of the lines in page size pixels. By default, we use values between 1 and 40 in the UI. The line width will scale when you zoom in.
Declaration
public int LineWidth { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
Name
An optional field that may be used to identify the annotation. By default it is set that to the same value as the automatically generated Id.
Declaration
public string Name { get; set; }
Property Value
Type | Description |
---|---|
System.String |
NoPrint
If the annotation should be printed or not.
Declaration
public bool NoPrint { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
NoView
The property that determines if the annotation is prevented from being rendered in the UI. The annotation may still be rendered in a printed page, depending of the value of NoPrint.
Declaration
public bool NoView { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
Opacity
The opacity of the annotation, 0.0 - 1.0.
Declaration
public float Opacity { get; set; }
Property Value
Type | Description |
---|---|
System.Single |
OptionalNote
An optional note. An note that can be set on any annotation. This value is displayed in the PSPDFKit for UWP UI for all annotations except note annotation, text annotation, and widget annotation.
Declaration
public string OptionalNote { get; set; }
Property Value
Type | Description |
---|---|
System.String |
PageIndex
The page index of the annotation in the document.
Declaration
public int PageIndex { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
PdfObjectId
The Pdf object ID, if the annotation is included in a Pdf file.
Declaration
public int? PdfObjectId { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.Int32> |
StrokeColor
The Windows.UI.Color of the line.
Declaration
public Color? StrokeColor { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<Windows.UI.Color> |
UpdatedAt
The date of last annotation update.
Declaration
public DateTimeOffset UpdatedAt { get; set; }
Property Value
Type | Description |
---|---|
System.DateTimeOffset |
Version
The Instant JSON spec version this annotation is compliant to.
Declaration
public int Version { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Methods
FromJson(JsonObject)
Constructs the IAnnotation from the Instant JSON representing it. See https://pspdfkit.com/guides/server/current/document/json-format/ If any mandatory properties are missing then an exception will be thrown.
Declaration
public static IAnnotation FromJson(JsonObject json)
Parameters
Type | Name | Description |
---|---|---|
Windows.Data.Json.JsonObject | json | The Instant JSON representing the IAnnotation. |
Returns
Type | Description |
---|---|
IAnnotation | The IAnnotation represented by the Instant JSON. |
FromPartialJson(JsonObject)
Constructs the IAnnotation from the Instant JSON representing it. See https://pspdfkit.com/guides/server/current/document/json-format/ This method does not require mandatory properties to be present in the JSON. Instead appropriate default values will be used.
Declaration
public static IAnnotation FromPartialJson(JsonObject json)
Parameters
Type | Name | Description |
---|---|---|
Windows.Data.Json.JsonObject | json | The Instant JSON or partial Instant JSON representing the IAnnotation |
Returns
Type | Description |
---|---|
IAnnotation | The IAnnotation represented by the Instant JSON. |
SetBoundingBoxAndResizeLines(Rect, Boolean)
Set the bounding box of the ink annotation and scale the lines and line width to new width and height.
Declaration
public void SetBoundingBoxAndResizeLines(Rect newBoundingBox, bool maintainAspectRatio)
Parameters
Type | Name | Description |
---|---|---|
Windows.Foundation.Rect | newBoundingBox | New bounding box to set. |
System.Boolean | maintainAspectRatio | If true, scales the new bounding box to fit in the same aspect ratio of the current bounding box. Otherwise the signature will be stretched to fit the new bounding box. |
ToJson()
Converts the annotation to the Instant JSON annotation format. See https://pspdfkit.com/guides/server/current/document/json-format/
Declaration
public JsonObject ToJson()
Returns
Type | Description |
---|---|
Windows.Data.Json.JsonObject | The annotation object. |