Text and Image Selection
Allows you to select text or images, just like you’re used to on iOS. The loupe has been rebuild to closely match the one that’s default on iOS. Useful options will be displayed, like querying the dictionary if that word is included, or opening Wikipedia. The menu is fully customizable and extendable via the PSPDFViewControllerDelegate.
Displaying/Editing annotations is fully supported for Highlight, Underscore, Strikeout, Ink drawings, Notes, Free Text, Shape (Circle, Square), Link, Line, Stamp (Images, AP streams). Some other annotation types are currently readonly, like RichMedia (Videos) or Screen. Annotations will be written back into the PDF, or optionally also into an external file (this can be customized in PSPDFDocument). Annotations that are written back into the PDF are compatible with Adobe Acrobat, GoodReader or any other PDF reading app that can display annotations. The annotation system is provider-based and very flexible to allow custom backends like a local database or a web-server. Annotations can also be resized and/or moved.
PSPDFKit even has a special mode that allows editing link annotations. Links are not enabled by default, but can be added to the editableAnnotationTypes set.
Annotations can be created on the fly (e.g. with selecting text) or in code. PSPDFKit also provides a great default toolbar to create annotations and related operations, like changing the drawing color, undo or redo operations.
Custom Color Picker
PSPDFKit has great support for color editing, with similar, beautiful color palettes as Pages for iOS, and an advanced HSV color picker for advanced usage. This is of course also configurable (setDefaultColorPickerStyles:) and usable from your own code.
On double-tap, PSPDFKit will search for the tapped text block and perform an intelligent zoom, just as you’re used to in Safari. This reduces the zooming amount and is super convenient. And PSPDFKit will also render documents much faster as the typical block-based render variants.
Search will search across your whole document and highlight all found positions. A lot of thought went into this, even words that are hyphenated/split on multiple lines will be found correctly. The search text is preprocessed to allow a diacritic insensitive search. (e.g. a search for economie will find a result even for économie). PSPDFKit will also correctly parse and handle font ligatures (thus, single characters that consist of multiple characters). Chinese, Arabic and the most common foreign character sets are also supported.
Our text extraction engine is battle tested and has many special code paths for different PDF quirks, like cyclic XObjects or missing encodings.
PSPDFKit supports embedded video, audio, images and web content. You can link to local or remote files, even YouTube is supported, and we go through great length to even pause the video when you go to the thumbnail view and resume as soon as you go back, and the video position will be preserved when switching pages. Multimedia annotations can be created with Adobe Acrobat or 3rd party software like PDFPen Pro. Set the regions using regular PDF annotations and the custom pspdfkit:// format - everything can be set up within the PDF. With RichMedia or Screen annotations, videos can even be loaded directly from the PDF. And yes, we even support animated GIFs :)
PSPDFKit supports all common types of link annotations, including links to external PDF documents to link documents with other documents, much like hyperlinks. Links to the App Store are supported and specially handled, so are email links to provide the best possible experience.
The PDF outline will be parsed and supports both in-page links and links to other PDF documents. If a outline element doesn’t contain a target, it will expand/collapse on touch. Large outline elements will be wrapped across multiple lines.
If the PDF document defines PDF labels, those will be displayed instead of the regular page labels. Page labels can be roman letters, alphanumerical or custom text. Page Labels can be added with Adobe Acrobat or in-code.
Encryption and Security
PSPDFKit supports basic PDF password encryption (40‑bit RC4 or 128‑bit RC4 or AES). Additionally, PSPDFKit Annotate supports an additional layer of security with a military-grade AES256 encryption. A Mac tool is provided that helps to encrypt regular PDF into the more secure variant. If a document with a password is opened, a custom view requesting the password will be displayed.
PSPDFCache also supports adding custom encryption code to encrypt any cached images.
Page Transitions and Dual Page Mode
PSPDFKit has 3 different pageTransition styles, each of it in a horizontal or a vertical mode: Magazine-like side-scrolling, Safari-like continuous scrolling or PageCurl. You can choose to show only one or two pages, optionally also with a cover page. The document can be anchored to the screen height or width.
Every page is a subclass of a UIView (PSPDFPage) and it’s very easy to add additional custom views on top of that. Views optionally also get notified when the parent frame changes (e.g. on rotation) to re-align themselves. The PSPDFCatalog provides some examples how to add custom overlays (like a button).
Bookmarks can be added per-page and bookmarked pages will be specially marked in the thumbnail overview. A long-press to the bookmark icon shows the bookmark controller where bookmarks can be edited or even renamed. Bookmarks are persisted within a plist and can be created/deleted programmatically.
Send via Email and Annotation Flattening
PSPDFKit provides a action to send the current page or the whole document via email. The user can choose to optionally flatten the document to render the annotations into the page itself. (Most apps including Safari on iOS can’t display annotations, so flattening is very important.) The annotation flattening class can also used manually or to merge multiple PDF documents or to cut out a single page from a document.
Highly customizable default actions
All commonly used actions are pre-provided as UIBarButtonItems that can be added to the default or custom UIToolbars. Actions include bookmarks, annotations, brightness, send via email, open in..., outline, search, iOS6 Activity (like Twitter/Facebook), printing, etc.
Almost every property can be customized. The PSPDFViewController can be used in fullscreen or as a child controller. Zooming can be customized, padding/margin can be changed. Rendering can be customized to be faster or to skip the thumbnail. The padding between the pages can be customized as well.
Perfectly customized for both iPhone and iPad.
PSPDFKit gets every detail right. The scrobble bar correctly reduces size on iPhone/Landscape. The document title will be displayed in a label above the document on iPhone but will use the title bar on iPad.
One document, many sources
PSPDFKit can merge multiple document source into a single logical document, may they be from different PDF files, NSData objects or CGDocumentProviders. Everything can be mixed dynamically, for the user it will display as one file.
Convert everything to PDF
With PSPDFProcessor, you can create PDF documents on the fly from many supported file formats, such as Word (doc, docx), Excel (xls), PowerPoint, Numbers, Pages or even websites. Those documents then can be opened and annotated.
PSPDFProcessor allows you to extract single pages of a PDF, create a new PDF or merge multiple PDF files into one PDF. PSPDFDocument has built-in support for multiple content sources, but PSPDFProcessor is useful if you want to save a file externally.
For pilots or people that work in dark areas PSPDFKit has a night mode that inverts the document and can dim down the screen with an additional software layer until it’s almost completely dark. This is already used today in many cockpits around the world.
Internal Web Browser
When a URL is tapped, PSPDFKit can be customized to either open an internal browser, Safari or simply ask the user. When a link is long-pressed, a preview popover will be displayed that shows the target URL. Actions within the browser can be customized as well. (Copy Link, Open in Safari, Mail Link, Print)
With the optional PSPDFTabbedViewController, multiple documents can be opened easily. The viewState is preserved on every open page (you can also manually get the view state at any time). The state is automatically restored across app restarts and can be customized via a delegate.
PSPDFKit allows you to query a document for text glyphs, words, full-text and text blocks. Images can also be extract. PSPDFPageView allows easy conversion between PDF and screen coordinates.
PSPDFKit fully supports iOS accessibility and you can even let the system read the PDF content. All buttons have special accessibilityTitles so they can used even by blind people. Even small details are taken care of, like the scrobble bar which is a special touch-through area to allow navigating.
Check out the full changelog or contact us with your specific requirements.