Document Permissions

The PDF specification defines a series of flags that can be set on a document to determine what a user can do with a document. These permissions are represented as a bitmask at the PDF level. When a permission bit isn’t present at its defined position, the permission is considered not granted.

PSPDFKit honors the permissions set on a document and enables or disables certain platform features based on the permission configuration. For instance, if a PDF doesn’t explicitly define the printing permission as loaded, PSPDFKit won’t enable the printing option in the UI.

The PDF specification defines the permissions shown below.

  • Printing: Print the document.
  • High-Quality Printing: Print the document in high fidelity.
  • Copying Content: Copy or otherwise extract text and graphics from the document.
  • Document Assembly: Insert, rotate, or delete pages and create document outline items or thumbnail images.
  • Editing Annotations and Forms: Add or modify text annotations and fill in interactive form fields.
  • Filling Forms: Fill in existing interactive form fields (including signature fields).
  • Modifying Content: Any other modifications not covered by previous permission flags.

By default, most documents will have all permissions marked as granted.

PSPDFKit has support for the above permissions on a per-platform basis. This is ongoing work, and support for more permissions is being worked on to reach feature parity across platforms.

The permissions will be honored when the document is unlocked with a user password (in case there’s one). Please note that a PDF document can have both an owner password and a user password (read more). We recommend not using the same value for both the owner and user password.

Below you’ll find a detailed breakdown of the permissions that can be set.

Printing and High-Quality Printing

This permission is currently not honored by PSPDFKit for Windows, and our PrintHelper will always print at a resolution of 150 DPI.

Text Extraction

When this permission isn’t given, users aren’t allowed to select text in a document. This permission is honored by default, but it can be disabled by setting the PSPDFKit.UI.PdfView.IgnoreDocumentPermissions property to true.

Document Assembling

This permission is currently not honored by PSPDFKit for Windows.

Forms and Annotations

When this permission is disabled, users aren’t allowed to fill out forms. This is honored by default.

Content Modification

This permission specifies whether or not modifying a document’s contents is allowed. Modification is honored by default, but it can be disabled through the ReadOnly property of the ViewState.

Disabling the default permission doesn’t affect the original file; instead, it affects how the final user can interact with the document.

Getting and Setting Permissions

Modifying document permissions using PSPDFKit for Windows isn’t possible at this moment, but you can configure your PdfView to ignore all the permissions set on the document by setting the PSPDFKit.UI.PdfView.IgnoreDocumentPermissions property to true. This setting only affects the PSPDFKit instance, and the document won’t be modified in any way.