Detailed Feature Breakdown
- 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
- Rasterizing the whole page or subsets thereof
- Printing using the iOS printer pipeline (including page range selection)
- Full transparency support (transparency groups, soft masks, all supported blend modes)
- Limited ability to work with corrupt PDF documents (e.g. broken cross references)
- Splitting documents
- Merging documents
- Adding new pages (choose from various patterns or a blank page)
- Removing pages
- Moving/rearranging pages
- Rotating pages
- Annotating images
- 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 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 clusters.
- 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/trees.
All of these objects can be programmatically created or modified. PSPDFKit can save annotations back 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)
- Setting or modifying security permissions
For additional security information, see our article on SDK security.