Detailed Feature Breakdown

To see what OS versions are supported by which versions of PSPDFKit, see this page.

PDF Viewing/Rasterization/Printing

  • Support for PDF 1.0 - PDF 1.7 (PDF Revision 1.8, Acrobat 9) and ISO PDF (ISO 32000)
  • Support for all compression filters: JPEG/JPEG2000, JBIG2, CCITT Fax and Flate/PNG
  • Rasterize the whole page or subsets thereof
  • Printing using the iOS printer pipeline (including page range selection)
  • Full transparency support (Transparency Groups, Soft Masks, including all supported Blend Modes)
  • Limited ability to work with corrupt PDF documents (e.g. broken cross references)

Document Editing

  • Split documents
  • Merge documents
  • Add new pages (choose from various patterns or blank)
  • Remove pages
  • Move/Rearrange pages
  • Rotate pages
  • Annotate Images

These features are exposed via PSPDFDocumentEditor and partly also PSPDFProcessor.

Content Extraction

  • Document text is parsed and can be extracted as unicode
  • Horizontal text can be selected, unless it's an image or pure path vector data
  • Individual glyphs are exposed
  • Words and text blocks are exposed and approximated using advanced heuristics
  • Images are exposed and can be converted to standard formats and saved to disk/memory

PDF Metadata

  • PDF metadata is exposed as a dictionary
  • PDF outline/table of contents is exposed as a custom tree
  • PDF page label data is exposed as strings
  • PDF actions are exposed as action class cluster
  • PDF embedded files are exposed as regular objects and offer methods to extract the files to a disk location
  • PDF annotations are exposed as regular objects
  • PDF form elements are exposed as regular objects/tree

All of these objects can be programmatically created or modified. PSPDFKit can further save back annotations into the PDF (if that component is licensed) and fill out forms.


  • Support for Standard PDF security handler (40 and 128-bit RC4)
  • Support for AES-128 and AES-256 (Advanced Encryption Standard) encryption
  • Data providers for plugging in custom encryption handlers
  • Default UI for requesting passwords
  • Exposing document permission flags
  • Respecting document permissions (e.g. disable printing or text selection)
  • Set or modify security permissions

For additional security information, see our article on SDK security.