AVAILABLE NOW: FALL 2025 RELEASE
Why it Matters:
Annotation is critical for real-time collaboration, achieving compliance, and establishing secure audit trails across digital document workflows.
What You’ll Learn:
This guide provides an in-depth look at annotation, including what annotation is and the different types, what role it plays in digital document workflows, XFDF, industry use cases, how to choose a solution, and much more.
Who It’s For:
Developers, software architects, and product teams building or enhancing enterprise document review and feedback systems.
Key Differentiators:
Solutions that offer multi-format support (PDF, Office, image, and HTML), real-time synchronization, specialized tools such as CAD measurements, and highly flexible, enterprise-ready APIs.

An annotation is an object such as text, graphics, highlights, text boxes, or redaction marks layered on top of a document that users can use to add comments and more without altering the original content. Editing on the other hand is making changes to the actual content.
In a comprehensive SDK, such as the Apryse Annotation SDK, an annotation object includes these elements:
Type:
Identifies the nature of the markup such as Highlight, Rectangle, and FreeText.
Page Index:
The specific page the annotation is bound to.
Bounding Box:
The precise coordinates defining the annotation’s position and dimensions on that page.
Appearance Stream:
The instructions necessary for the viewer to render the visual element.
Annotation: A metadata-driven object that overlays a document to provide commentary, markup, or interactive functionality without altering the file's core content.
Appearance Stream: A set of drawing instructions embedded in an annotation that defines how it should look on the page, ensuring consistent rendering across different viewers.
Bounding Box: A rectangle of coordinates that specifies the location and dimensions of a non-text-based annotation on the page.
Caret Annotation: A small, specialized markup, typically shaped like a caret (^ or v), used by reviewers to flag where text should be inserted into a document.
FDF/XFDF: Forms Data Format/XML Forms Data Format. Lightweight formats for exchanging form data and annotations separately from the main file. This enables efficient server-side processing and collaboration. XFDF is the modern XML standard.
Flattening: The irreversible operation that renders an annotation's appearance into the page content layer. It deletes the editable annotation object, making the markup permanent.
Freehand/Ink: An annotation created by recording one or more continuous paths of points, used for drawing, scribbling, or capturing handwritten signatures.
Quads: An array of coordinate sets used to define the bounding area of text-based markups for multi-line or non-rectangular selections.
Redaction: A two-stage process (marking and applying) that permanently removes text, images, or metadata from a document and usually obscures the area with a solid color box.
Stamp Annotation: A predefined or custom image or text block placed on the page that is often used to represent a document’s status such as Confidential or Approved.
Widget Annotation: An interactive field tied to a form element such as a text box, radio button, or signature area that captures a user’s input.

Documents are the center of complex, collaborative processes that require feedback, tracking, and sign-off. This is where annotation and markup shine, transforming a passive viewing experience into an active, auditable workflow.
Annotation is a non-destructive layer of information that sits above the core document content. It preserves the document's original integrity while enabling key business functions such as:
Collaboration: Providing in-context discussion and threaded replies.
Compliance and Audit: Creating a traceable record of every decision and action taken during a review.
Process Efficiency: Streamlining tasks like redlining, grading, and technical review.
A robust SDK must provide a rich set of tools to meet the needs of modern workflows.
These are the basic required tools for any review process:
This includes Highlight, Underline, Strikeout, and Squiggly lines and are often bound to precise text coordinates.
Sticky Notes allow users to add text boxes to the page. Solutions should offer Replies and Threaded Discussions to keep conversations organized and attached directly to the marked content.
Rectangle, Ellipse, Polygon, Line, and Polyline for graphical emphasis. The Freehand/Ink tool is useful for drawing and signatures.
Standard rubber stamps or custom stamps that can be generated with usernames, dates, or company logos.
FreeText allows for direct text input. Callouts are a specialized FreeText annotation that includes a pointer line to reference a specific point on the page.
Tools to embed Hyperlinks (internal or external) and File Attachments (with customizable icons and tooltips) within the document.
These features are used with highly specific, high-value workflows:
Redaction is critical for security and compliance. It involves two steps. First, the content to be redacted is identified with a Redaction Annotation mark. Second, the redaction is applied, permanently removing the marked content and its associated metadata from the file.
Tools for Distance, Perimeter, Area, and Angle measurement. Crucial for CAD and engineering platforms, these are unusable without proper calibration where a user defines a real-world scale such as 1 inch on the document equals 10 feet on the ground.
Widget Annotations are used to collect form data. The Signature Widget is a designated area for capturing a freehand e-signature.
These are specialized editorial marks. The Arc annotation is represented by a smooth curve, often used for highlighting curved paths in diagrams.
These can be custom-built to handle specialized industry symbols or logic that must persist across save/load cycles.

The XFDF (XML Forms Data Format) structure is what allows developers to build robust, scalable collaboration systems. It acts as a lightweight manifest for all document markups.
An XFDF file contains structured XML elements capturing an annotation’s essential details like the page number, the rect (bounding box), visual properties, and often Quads for text markups.
Developers can use Server SDKs to handle complex logic such as:
Merging XFDF: Combining the XFDF output from multiple reviewers into a single, unified data set allows the original document to show all feedback at the same time.
Appearance Regeneration: When modifying annotation properties, like color or size, outside of a viewer environment, the server may need to generate a new Appearance Stream to ensure it looks correct when it’s re-imported.
Custom Property Extension: Using APIs to assign an annotation specific business logic metadata, such as a ticket ID, approval status, or a non-standard security classification.
Learn more about exporting XFDF in our blog.

Annotations can be created in two ways: Using UI tools (for example, the user drawing a shape) or programmatically through an API (for example, a system automatically watermarking or stamping a document).
True real-time collaboration relies on annotation commands rather than synchronizing full XFDF files repeatedly.
When a user makes a change such as adding a note or moving a shape, the viewer doesn't export the whole document’s XFDF. It exports a small Annotation Command string listing what changed.
This command is immediately sent to a backend persistence layer such as a message queue or real-time database, and broadcast to all other active users.
Receiving clients import the command, and the viewer instantly applies the modification, ensuring changes appear live without having to reload the document.
To meet enterprise security and compliance requirements, role-based permissions can be enforced using the APIs.
Read-only access to the document and all existing annotations and comments.
Can create new annotations and replies and can edit or delete only those they created.
Full rights to create, edit, delete, and change properties for any annotation, regardless of the original author.
For field-based or high-latency environments, the system must support offline persistence. This involves:
Newly created and modified XFDF data is saved to local storage while offline.
Once reconnected, the local timestamp is checked against the server's master version.
Conflicts are resolved either by prioritizing the server's version or merging the local changes before uploading the updated XFDF and re-synchronizing the viewer.

Even the best application can suffer from a poorly designed interface, and it is no different with annotation. The UX must be clear, fast, and cross-device compatible.
Side Panel: This is the main hub for collaboration. It displays all annotations in a list, allows a user to filter annotations (for example, by author, type, or status), and holds the threaded comments section.
Floating Toolbar and Context Menu: Appears when an annotation is selected, providing quick, context-sensitive actions like reply, change color, delete, and set status.
Main Toolbar: The primary row of icons for the annotation tools.
Touch Input: For touch input to be effective, the UX must be optimized for tablet and mobile, requiring larger touch targets, simple drag-and-drop actions, and robust support for tap and hold gestures.
Keyboard Shortcuts: Incorporating shortcuts for switching tools can make it easier and quicker for high-volume reviewing.
Customization: Using the SDK’s UI APIs to control various elements such as tool visibility, main toolbar position, or custom styling ensures the viewer component fits seamlessly with the main application.
Accessibility: Providing high-contrast theme options, ensuring that all interactive elements are correctly labeled for screen readers, and other accessibility features is crucial for delivering an accessible user experience and is a non-negotiable requirement for building compliant applications.
Building applications that stand out from others in the market means extending the core features to allow for customization and advanced features such as:
Customizing the drawing behavior such as creating a "Quick-Stamp" tool to place a pre-set stamp with a single click.
Restricting what a user can select for highly specific review constraints.
Overriding the default rendering to apply specific corporate branding or dynamic, data-driven visuals like an inline appearance that changes color based on the annotation's approval status.
For formal review, annotations often require sequential numbering or labeling (for example, based on page index or type). This must be handled client-side for dynamic updates and persisted in the XFDF metadata.
Enabling full rich text formatting like bold, italics, font, and color within FreeText and note annotations, while adhering to the PDF specification for compatibility.
Giving users the ability to rotate shapes, lines, and stamps freely, alongside features like snap alignment to ensure annotations are placed correctly on the document grid.
Users can embed supporting documents, images, or other files within the annotation. This is useful for linking evidence to a specific comment without altering the core document.
For auditing purposes, developers can customize and programmatically set the Author metadata and timestamps for when the document was created and last modified.
Users can attach specific information or labels to an annotation, allowing it to be processed by other systems.

Lazy Rendering: The viewer only draws annotations for the pages currently visible in the viewport. This avoids loading all annotations when the document is opened, keeping initial load times low.
Annotation Pagination: Organizing the internal annotation store by page index to allow for quick lookups and reduce memory usage when pages are accessed sequentially.
Caching and Memory Management: Using browser and API-level caching for frequently accessed annotation data to minimize redraw rates. This ensures a smooth, responsive experience during panning and zooming.
Client vs. Server: For a few hundred markups, client-side flattening is fast. However, for documents with thousands of annotations or for high-volume, automated processes, handling the flattening with a dedicated Server SDK is always the better option for performance and reliability.
Metrics: Enterprise platforms should target low initial document load times (for example, under 3 seconds) and a redraw rate (when panning or zooming) that feels instantaneous, even on low-power devices.
Integrating annotation into an existing application requires defining clear data flow between the client and server.
Embedding the JavaScript-based annotation component (like WebViewer) into the web application, providing all UI and client-side processing out of the box.
The client sends their XFDF changes to the server. The server uses an SDK, such as the Apryse Core SDK, to read the master document, apply the new XFDF, often merging it with other XFDF, and saves the updated master annotation data.
XFDF strings are stored as JSON blobs or fields within a database record. The application pulls and pushes this data directly through API calls.
Leveraging the Apryse Core SDK for non-visual tasks like applying pre-defined stamps, programmatic watermarking, or automatically removing certain annotation types before final distribution.
Annotation is critical for handling interactive documents, particularly forms and signatures. The SDK allows developers to programmatically pre-populate form fields, insert or remove dedicated Signature Widget Annotations at specific locations to control which users are prompted to sign, and efficiently extract all field data to XFDF or JSON format for processing.
Using APIs, recently added, modified, or deleted annotations since the last check are recorded and exported or imported, ensuring near-instantaneous updates.
Developers need to be aware of some common issues that can affect annotation.
This occurs after the user has scaled, rotated, or cropped a page. The bounding box coordinates of an annotation are static. Meaning, if the underlying page geometry changes and the annotation isn’t adjusted, the annotation will no longer sit in the correct location.
Flattening is irreversible. Having clear warnings and ensuring robust versioning before flattening is critical to prevent accidental loss of editability.
Annotations are imported with an incorrect page index. For example, markups appear on page 1 when they actually belong on page 10.
External PDFs may contain annotations created by non-compliant or proprietary tools. A robust SDK should handle these cases either by falling back to a generic appearance or by providing clear error logging rather than crashing the viewer.
Annotations relying on specific fonts for their rendering can look different if the font is not available on the viewer’s machine. To solve this situation, either rely on standard, universally available fonts or embed the necessary fonts into the annotation's appearance stream.
A robust annotation solution, such as the Apryse SDKs, must handle a variety of formats beyond PDFs:
Annotate DOCX, XLSX, PNG, and live HTML pages using the same annotation tools, UI, and XFDF data model.
Specialized modules allow for accurate measurement and markup on technical drawings.
Apply annotation using Apryse WebViewer Video and Audio modules.
The annotation experience should be the same across a project folder that contains PDFs, CAD files, and technical manuals. This simplifies the reviewer's job and prevents data silos.
APIs
Comprehensive, well-documented APIs in all major languages (JavaScript, .NET, Java, Python). Strong sample coverage to accelerate integration.
Lowers the total cost of ownership (TCO) by reducing custom development time and the need for specialized IT resources.
XFDF Support
Full, compliant support for XFDF import/export, including custom metadata fields. Allows for easy integration into custom collaboration backends.
Guarantees data interoperability and ensures annotation data is portable and not vendor locked.
Real-Time Collaboration
Provides clear architecture patterns for synchronizing and sample code for custom backend implementation.
Ensures seamless and efficient collaboration for distributed teams working on critical documents simultaneously.
Deployment Options
Flexibility to integrate client-side and server-side logic for high-performance server tasks.
Data control and security are paramount, requiring options for on-premises or private cloud deployment to meet compliance (GDPR, HIPAA).
Formats
A single set of APIs to annotate PDFs, Office files, images, and HTML, eliminating the need to integrate multiple, disparate viewers.
Maximizes ROI by enabling automation and review workflows across the entire organization's document portfolio.
Measurement & Redaction
Dedicated tools for technical markup and compliant, irreversible content removal.
Essential for legal (redaction) and engineering (measurement) departments to perform required tasks accurately within the platform.
Unlike solutions limited to PDFs, Apryse provides a unified annotation engine across PDF, Office (DOCX/XLSX), image, CAD (DWG, DXF), and HTML. This means you use one set of APIs and one collaborative data model (XFDF) for your entire document portfolio, significantly reducing development time and complexity.
With the advances in AI, annotation is evolving from a passive feedback tool into an active data-generation method. As AI and annotation continue to advance, we’ll see features like the following be used more and more:
Large language models (LLMs) can be used to automatically detect clauses, identify key entities (names, dates, amounts), and add smart highlights or tags, dramatically speeding up the review process.
LLMs can analyze the context of a paragraph and suggest standard comments or replies, reducing manual work and improving consistency in large review projects.
Annotations will become the key to training AI. Annotations marking key-value pairs or tables can be used as ground truth to train smart data extraction models.
Tracking engagement metrics like comment activity heatmaps, time spent on specific pages, and the speed of comment resolution provides insights into process bottlenecks and the efficiency of reviewers.
Looking Ahead with Apryse: Apryse is embracing the shift toward AI and automation, focusing on enabling AI-assisted annotation to speed up human review, strengthening the integration with Smart Data Extraction to train ML models, and enhancing collaboration with advanced annotation analytics.

Integrating robust document annotation capabilities into your application requires a flexible SDK that’s easy to use across various platforms. The Apryse SDKs offer modular components, allowing you to embed high-fidelity viewing, markup, and collaboration features with minimal development effort.
Note: Here we are discussing how to set up the WebViewer SDK, which includes the JavaScript Annotation Library. Annotation capabilities are also available through the Server SDK (available in C#, Java, Python, and more) and Mobile SDK.
Step 1: Get to Know the WebViewer SDK
The Apryse annotation features are built into WebViewer, providing comprehensive annotation tools and APIs for real-time collaboration, XFDF persistence, and customization. It provides a complete, out-of-the-box UI that you can easily configure and style.
Learn more about the full range of annotation features, customization options, and API methods in our documentation.
Step 2: Explore the Interactive Demo
Check out our annotation demo and try out real-time collaboration, specialized measurement tools, and custom markups.
Try the WebViewer Annotation Demo to see the component in action.
Step 3: Integrate Annotation into Your Application
To begin developing, integrate the WebViewer component into your project and start calling the annotation APIs.
An embedded annotation is stored directly within the PDF file itself, which requires modifying and saving the original document whenever a change is made; an external annotation is stored separately in an XFDF (XML Forms Data Format) file, the preferred method for collaboration and server-side versioning as it keeps the core document untouched.
No. The process of Flattening is irreversible as it permanently merges the annotation into the document's content layer and deletes the editable annotation object.
XFDF is a lightweight, XML-based standard used to store and exchange annotation metadata such as position, style, and comments. The file is independent of the larger document file and is essential to enterprises for efficiently merging annotation data from multiple reviewers or synchronizing it with databases.
Yes. Apryse SDKs extend annotation functionality to multiple formats, allowing developers to use the same set of tools and APIs to mark up various file formats such as PDF, Office documents (DOCX, XLSX), images, and HTML pages.
To ensure an annotation is tamper-proof for compliance, properties such as ReadOnly and Locked can be applied using the annotation API. This prevents the object from being edited, deleted, or moved by standard users once it has been applied.

We have explored how annotations are defined and managed through the lifecycle from creation to flattening. How implementing real-time collaboration relies on the exchange of annotation commands and maintained by access controls. We also detailed strategies for high-volume performance and the specific patterns for application integration such as forms, signatures, and cloud synchronizing.
Annotation is a key feature that delivers incredible value such as:
Efficiency: Automating review cycles, speeding up approvals, and ensuring teams spend less time merging feedback and more time executing decisions.
Compliance: Creating verifiable, auditable records for every markup, change, and sign-off, which is essential for legal, financial, and government workflows.
Collaboration: Empowering distributed teams with a seamless, in-context way to work together across any document format, maximizing productivity.
By implementing a robust, flexible SDK, developers can deliver solutions that drive efficiency, ensure compliance, and transform document workflows.
Ready to get started with annotation?
PRODUCTS
Platform Integrations
End User Applications
Popular Content