Skip to main content

Document manipulation

By default, the Collaboration Client disables document manipulation APIs and UI. We disable this functionality because we do not handle file storage, and manipulating a document would require saving that updated document back to your file storage provider.

Reenabling document manipulation#

warning

Reenabling document manipulation is dangerous - please read the section below to understand the risks involved

You may reenable document manipulation my passing the enableDocumentManipulation to the CollabClient constructor:

import { CollabClient } from '@pdftron/collab-client'
const client = new CollabClient({
enableDocumentManipulation: true,
...other
})

The dangers of enabling document manipulation#

Since document manipulations are not synced to other users, manipulating the document can cause annotations to become out of sync between users.

For example, if user 1 rotates the first page of a document 90 degrees, that change is not reflected to other users. If the user now creates an annotation on that rotated page at coordinates (100,200), the coordinates of that annotation are different for user 1 and user 2, causing the annotation to appear in different positions.

If you do want to enable document manipulation and avoid sync issues, you need to implement the following two things:

  • Syncing file changes. If user 1 rotates the page, that rotation needs to be reflected on all others screen
  • File storage. If a user rotates a page, the updated document needs to be saved back to your file storage provider