Skip to content
Guides

Flatten Annotations

Annotation flattening refers to the process of converting editable annotations into non-editable, unmodifiable static images or plain text. When flattening annotations, all editable elements in the document (including annotations and form fields) are flattened, so annotation flattening is also known as document flattening.

Below is an example of how to flatten annotations:

Using CPDFReaderWidget:

dart
CPDFReaderWidgetController? _controller;
// Initialize CPDFReaderWidget and obtain the controller in the onCreated callback
CPDFReaderWidget(
  document: documentPath,
  configuration: CPDFConfiguration(),
  onCreated: (controller) {
    setState(() {
      this._controller = controller;
    });
  },
)

final savePath = 'file:///storage/emulated/0/Download/flatten.pdf';
// Or use a Uri on Android:
// final savePath = await ComPDFKit.createUri('flatten_test.pdf', 'compdfkit', 'application/pdf');
final fontSubset = true;
final result = await _controller.document.flattenAllPages(savePath, fontSubset);

Using CPDFDocument:

dart
// Create and open the document
CPDFDocument document = await CPDFDocument.createInstance();
var error = await document.open(pdfFilePath);
if (error == CPDFDocumentError.success) {
  final savePath = 'file:///storage/emulated/0/Download/flatten.pdf';
  // Or use a Uri on Android:
  // final savePath = await ComPDFKit.createUri('flatten_test.pdf', 'compdfkit', 'application/pdf');
  final fontSubset = true;
  final result = await document.flattenAllPages(savePath, fontSubset);
}

What is Document Flattening

Document flattening refers to the process of converting editable elements, such as annotations, form fields, or layers, in a PDF document into non-editable, static images, or pure text. The purpose of this process is to lock the final state of the document, eliminating editable elements.

Document flattening is typically applied in the following contexts:

  1. Content Protection: Flattening can be used to protect document content, ensuring that the document remains unaltered during distribution or sharing. This is crucial for maintaining document integrity and confidentiality.
  2. Form Submission: In form processing, flattening can convert user-filled form fields and annotations into static images for easy transmission, archiving, or printing, while preventing modifications to the form content in subsequent stages.
  3. Compatibility and Display: Some PDF readers or browsers may encounter issues with displaying and interacting with PDF documents that contain numerous annotations or layers. Document flattening helps address these compatibility issues, enhancing the visual representation of documents in various environments.
  4. File Size Reduction: Flattened documents typically have reduced file sizes since editable elements are converted into static images or text, eliminating the need to store additional data for editing information.