Add ink annotations to PDFs in Java

Annotations are created using the AnnotationProvider.AddAnnotationJson method. To create an annotation on a page, use the annotation JSON format to add the annotation you want.

Creating ink annotations

An ink annotation consists of a series of x,y coordinate Points (in pixels) starting from the top left of the page. Each point has a corresponding Intensity with a value from 0.0 to 1.0 (the default is 0.5).

Here’s an example of adding an ink annotation with JSON:

{
"id": "10",
"v": 1,
"pdfObjectId": 10,
"pageIndex": 0,
"bbox": [0, 0, 700, 900],
"opacity": 1,
"type": "pspdfkit/ink",
"lines": {
"points": [
[
[445.5, 503.9],
[438.6, 503.1],
[433.4, 500.5],
[267.5, 435.2]
]
],
"intensities": [[0.5, 0.5, 0.5, 0.5]]
},
"lineWidth": 5,
"strokeColor": "#2483c7",
"isDrawnNaturally": false,
"isSignature": false
}

The JSON can be loaded from a file and added using addAnnotationJson:

String jsonString = Files.readAllBytes(Paths.get("path/to/my-annotation.json")).toString();
document.getAnnotationProvider().addAnnotationJson(new JSONObject(jsonString));