Flatten annotations in Flutter

Nutrient Flutter SDK allows you to create a new document with processed (embedded, flattened, removed, or printed) annotations using the processAnnotations(AnnotationType type, AnnotationProcessingMode processingMode, String destinationPath) function.

Parameters

This guide shows how to use the processAnnotations() function and its parameters.

Processing mode

Since Nutrient Flutter SDK version 3.12, the processing mode parameter has been changed from a string to an enum type, AnnotationProcessingMode(opens in a new tab), which specifies how Nutrient should include annotations in the resulting document.

Processing modeDescription
flattenThe annotation will be flattened. Its visual representation is kept intact, but it can no longer be modified. The annotation object is removed from the document.
removeThe annotation will be removed.
embedThe annotation will be embedded into the resulting document, allowing it to still be modified.
printProcesses the document for printing. Flattens annotations that can be printed and removes the remaining ones.

Annotation type

The AnnotationType(opens in a new tab) parameter is a string that specifies which annotation types Nutrient should process. See the list of all supported annotation types(opens in a new tab). To process all annotations, including forms, set the value for the annotation type parameter to all or none.

Destination path

The destination path parameter is a string that specifies the path where the resultant processed file will be stored. By default, it’ll be stored under the document directory(opens in a new tab).

Make sure you save all annotations before processing the document. For more details, refer to our guide showing how to manually save annotations in a document.

Usage

A typical call of the processAnnotations function looks like this:

await pdfDocument.processAnnotations(AnnotationType.all, AnnotationProcessingMode.flatten, 'PDFs/export.pdf');