---
title: "PHP PDF annotation library: Drop-in ready | Nutrient"
canonical_url: "https://www.nutrient.io/guides/web/annotations/php/"
md_url: "https://www.nutrient.io/guides/web/annotations/php.md"
last_updated: "2026-11-11T12:21:34.520Z"
description: "Add PDF annotations to your PHP app with Nutrient Web SDK. Create, edit, and remove highlights, ink, notes, and shapes in the browser."
---

# PHP PDF annotation library

Nutrient Web SDK is a JavaScript library for creating, removing, and editing PDF annotations. It is fully compatible with PHP and offers developers a robust API for programmatic annotation management, as well as a beautiful UI for working with 17 PDF annotation types in any PHP-based web app.

[Launch demo](https://www.nutrient.io/demo/annotations/)

## Key capabilities

- **17 annotation types** — Highlight, text, ink, note, shapes, and more

- **Create, edit, remove** — Programmatically or by using the UI

- **Import and export** — Manage annotations in XFDF or JSON files

- **Annotation events** — Trigger workflows or automations

- **Cloudy annotations** — Cloudy border effect

- **Custom appearances** — Replace or enhance annotation rendering

- **Synchronize** — To a server, multiple users, devices, or sessions

- **Customizable UI** — Hide annotation types or create custom tooltips

- **Extendable** — Add signing, editing, forms, and more

## Guides for annotation

**[What are annotations?](https://www.nutrient.io/guides/web/annotations/introduction-to-annotations/what-are-annotations.md)**\
Learn about the basics of PDF annotations

**[Supported annotation types](https://www.nutrient.io/guides/web/annotations/introduction-to-annotations.md)**\
Learn about the types of annotations supported by Nutrient

**[Annotation data formats](https://www.nutrient.io/guides/web/annotations/introduction-to-annotations/data-formats.md)**\
Learn about using external files to manage annotations

**[Geometry primitives](https://www.nutrient.io/guides/web/annotations/geometry.md)**\
Learn about the basic geometry data types exposed by Nutrient

**[Working with annotations](https://www.nutrient.io/guides/web/annotations/introduction-to-annotations/working-with-annotations.md)**\
Learn how Nutrient loads annotations

**[Synchronization overview](https://www.nutrient.io/guides/web/annotations/synchronization.md)**\
Learn about the different approaches to annotation syncing

**[Storing annotation data](https://www.nutrient.io/guides/web/annotations/synchronization/storing-annotation-data.md)**\
Learn best practices for storing annotation data

**[Concurrent user conflict resolution](https://www.nutrient.io/guides/web/annotations/synchronization/conflict-resolution.md)**\
Learn best practices for conflict resolution with concurrent users

**[Saving annotations overview](https://www.nutrient.io/guides/web/annotations/save/overview.md)**\
Learn the two ways Nutrient allows making changes to documents

**[Embed annotations into a PDF](https://www.nutrient.io/guides/web/annotations/save/embed-into-pdf.md)**\
How to embed annotations into a PDF document

**[Save annotations to external storage](https://www.nutrient.io/guides/web/annotations/save/to-external-storage.md)**\
How to save annotations to external storage

**[Auto save annotations](https://www.nutrient.io/guides/web/annotations/annotation-saving-mechanism.md)**\
How to configure the way changes are automatically saved

**[Import and export using server-backed](https://www.nutrient.io/guides/web/annotations/import-and-export/server-backed.md)**\
How to import/export annotations using server-backed mode

**[Import and export to/from Instant JSON](https://www.nutrient.io/guides/web/importing-exporting/instant-json.md)**\
How to import/export annotations to/from Instant JSON

**[Import and export to/from XFDF](https://www.nutrient.io/guides/web/importing-exporting/xfdf-support.md)**\
How to import/export annotations to/from XFDF

**[Import and export to/from a database](https://www.nutrient.io/guides/web/annotations/import-and-export/database.md)**\
How to import/export annotations to/from a database

**[Create an annotation](https://www.nutrient.io/guides/web/annotations/create-edit-and-remove/create.md)**\
How to create an annotation

**[Edit an annotation](https://www.nutrient.io/guides/web/annotations/create-edit-and-remove/edit.md)**\
How to edit an annotation

**[Remove an annotation](https://www.nutrient.io/guides/web/annotations/create-edit-and-remove/remove.md)**\
How to remove an annotation

**[Annotation permissions](https://www.nutrient.io/guides/web/annotations/create-edit-and-remove/permissions.md)**\
How to configure annotation editing permissions

**[Add an image annotation](https://www.nutrient.io/guides/web/annotations/create-edit-and-remove/add-image.md)**\
How to add an image to a PDF as an annotation

**[Detect changes to annotations](https://www.nutrient.io/guides/web/annotations/detecting-if-annotations-have-changed.md)**\
How to detect annotation changes that originate from the UI

**[Annotation flags](https://www.nutrient.io/guides/web/annotations/annotation-flags.md)**\
How to configure annotation behavior and capabilities

**[Annotation author name](https://www.nutrient.io/guides/web/annotations/annotation-author-name.md)**\
How to configure the author name for annotations

**[Customize annotation display logic](https://www.nutrient.io/guides/web/best-practices/business-logic.md)**\
How to configure the logic used to display annotations in the viewer

**[Customize appearance streams](https://www.nutrient.io/guides/web/annotations/appearance-streams.md)**\
How to render existing appearance streams

**[Annotation customization](https://www.nutrient.io/guides/web/annotations/custom-rendered-annotations.md)**\
How to create a custom annotation

**[Hiding annotations](https://www.nutrient.io/guides/web/annotations/customization/hiding-annotations.md)**\
How to hide individual annotations or annotation types

**[Customize default properties](https://www.nutrient.io/guides/web/customizing-the-interface/using-annotation-presets.md)**\
How to configure the default value for annotation properties

**[Store custom data in an annotation](https://www.nutrient.io/guides/web/annotations/custom-data-in-annotations.md)**\
How to store and process custom data inside an annotation

**[Annotation replies](https://www.nutrient.io/guides/web/annotations/comments-and-replies/replies.md)**\
Learn about displaying annotation replies as threaded conversations

**[Stamp a document with built-in stamps](https://www.nutrient.io/guides/web/features/stamp-annotation-templates.md)**\
How to stamp a document programmatically or with the UI

**[Stamp configuration](https://www.nutrient.io/guides/web/annotations/stamp-annotation-configuration.md)**\
How to create a custom stamp

**[Flatten annotations](https://www.nutrient.io/guides/web/annotations/flatten.md)**\
How to flatten annotations and burn them into the PDF

**[Annotate on an image](https://www.nutrient.io/guides/web/annotations/annotate-on-images/create-edit-and-remove.md)**\
How to annotate a PNG, JPG, or TIFF

**[Image document specification](https://www.nutrient.io/guides/web/annotations/annotate-on-images/specification.md)**\
Learn how PNGs, JPGs, or TIFFs are annotated by Nutrient

**[PDF actions support](https://www.nutrient.io/guides/web/annotations/pdf-actions.md)**\
Learn about the PDF actions supported by Nutrient

**[Link annotations](https://www.nutrient.io/guides/web/annotations/link-annotations.md)**\
How to create, detect, and customize link annotations








































**Call to Action**

Start your free trial for unlimited access and expert support.

[Learn More](https://www.nutrient.io/sdk/web/getting-started/other-frameworks/javascript.md)

## FAQ

Here are a few frequently asked questions about annotations in Nutrient Web SDK.

#### What is Nutrient Web SDK?

Nutrient Web SDK is a JavaScript library that allows developers to create, edit, and manage PDF annotations in web applications.

#### How many annotation types does Nutrient support?

It supports 17 different annotation types, including highlights, ink, notes, and shapes.

#### Can annotations be managed programmatically?

Yes, annotations can be created, edited, and removed programmatically or via the UI.

#### What file formats are supported for importing and exporting annotations?

Nutrient supports importing and exporting annotations in XFDF and JSON formats.

#### Is the Nutrient UI customizable?

Yes, you can customize the UI, including hiding annotation types and creating custom tooltips.
---

## Related pages

- [JavaScript PDF annotation library](/guides/web/annotations.md)
- [Angular PDF annotation library](/guides/web/annotations/angular.md)
- [Rotate PDF annotations using JavaScript](/guides/web/annotations/annotation-rotation.md)
- [ASP.NET PDF annotation library](/guides/web/annotations/aspnet.md)
- [Blazor PDF annotation library](/guides/web/annotations/blazor.md)
- [Choose the right annotation workflow setup](/guides/web/annotations/choose-the-right-annotation-workflow-setup.md)
- [Flattening annotations in PDFs](/guides/web/annotations/flatten.md)
- [HTML5 PDF annotation library](/guides/web/annotations/html5.md)
- [jQuery PDF annotation library](/guides/web/annotations/jquery.md)
- [Laravel PDF annotation library](/guides/web/annotations/laravel.md)
- [Next.js PDF annotation library](/guides/web/annotations/nextjs.md)
- [Nuxt.js PDF annotation library](/guides/web/annotations/nuxtjs.md)
- [React PDF annotation library](/guides/web/annotations/react.md)
- [Svelte PDF annotation library](/guides/web/annotations/svelte.md)
- [TypeScript PDF annotation library](/guides/web/annotations/typescript.md)
- [Vue.js PDF annotation library](/guides/web/annotations/vuejs.md)

