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, which specifies how Nutrient should include annotations in the resulting document.

Processing mode
Description
flatten The 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.
remove The annotation will be removed.
embed The annotation will be embedded into the resulting document, allowing it to still be modified.
print Processes the document for printing. Flattens annotations that can be printed and removes the remaining ones.

Annotation type

The AnnotationType parameter is a string that specifies which annotation types Nutrient should process. See the list of all supported annotation types. 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.

Warning

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');