Third Party Compatibility

PSPDFKit writes annotations in accordance to the standardized ISO 32000-1:2008 PDF specification. Any ISO compliant viewer (like Adobe Acrobat) will be able to display and edit such annotations and forms. Using standard compliant software, annotations can be created using PSPDFKit for iOS, edited in Adobe Acrobat for Windows and later displayed and edited/deleted on PSPDFKit for Web or Android. Our shared core ensures that annotations created between PSPDFKit SDKs from multiple platforms are especially compatible and render very similar. (Some icons like Notes have been tweaked to better match the respective platforms.)

You can evaluate our compatibility via the free PDF Viewer apps for iOS and Android and our PSPDFKit for Web demo instance. The default viewers that ship with operating systems are not always as capable:

Apple macOS High Sierra/Sierra (Safari/Preview/QuickLook)

Apple uses a custom PDF renderer ("CGPDF") that is part of CoreGraphics. It's a quite capable PDF renderer, however it is known to crash/freeze or not show content on several files or certain API call combinations. Most of these radars are unresolved to this day. As of version 5, PSPDFKit switched to a custom renderer because of these issues, and because Apple's focus clearly is not improving it's PDF rendering engine.

However, the above are edge cases. Most documents render correctly or well enough to be usable. Annotations are a different story. While - as long as an appearance stream is emitted - most annotations render correctly, there are issues related to rotated documents. Preview does not correctly handle editing documents containing stamp annotations, which results in stamps appearing differently or not at all when the document is opened again in Preview or any other PDF reader. Preview sometimes gets things right where QuickLook fails and reverse - Apple seems to have two different teams working on these features and not much shared code, which results in different bugs for different features. Editing forms partly works in Preview, however saving a document often destroys a lot of metadata or the form itself.

iOS 11

Apple improved PDF support in iOS 11 with the introduction of PDFKit, which existed on macOS since 10.4. We offer a Migration Guide to move from PDFKit to PSPDFKit which also explains some of the differences. iOS 11 extends annotation support and is able to display most commonly used annotations (highlight, ink, free text). There are still significant bugs and issues where annotations are not displayed, are mirrored or positioned incorrectly. iOS 11 also allows annotating PDF documents, however this component is not accessible to apps and can only be invoked from the system directly. These annotations are partly standard compliant but include Apple-specific additions. Displaying them in other viewers works correctly, however editing will remove any Apple-specific additions.

iOS 10/9 (Safari, QuickLook, Apps not using PSPDFKit)

iOS has had a native PDF renderer since iOS 2. The renderer is shared with the Mac, though there are often different bugs based on the different internal versions and architecture. The renderer is reasonably fast. Apple announced support for PDF annotations at WWDC in iOS 7, however this never really worked, and they stopped mentioning this feature. In practice this means that most annotations do not work or are not displayed at all. The custom annotation support is also part of an internal framework called "CorePDF" which is used as part of QuickLook and Safari. It allows vertical scrolling and text selection - however there's no way to customize anything, use custom encryption or draw on pages - you can't even preselect a page. It's a very basic reading experience.

3rd-party apps can either use QuickLook or go down to the C level and use CGContextDrawPDFPage to draw into a memory buffer/image. Building a viewer from scratch is very time consuming and it's hard to get the details right. Many apps choose the PSPDFKit SDK to get the best of both worlds - a friendly, customizable framework that fully fits into your application, while being fast and allowing both annotations and forms to be created/filled out.

Popular 3rd-party apps on iOS with annotation support

Popular 3rd-party apps on iOS are PDF Viewer, Adobe Acrobat Reader, PDF Expert, iAnnotate, GoodReader, Tiny PDF or PDF Box.

PDF Viewer, Tiny PDF and PDF Box use PSPDFKit for rendering and editing annotations. There are many other popular iOS apps that use PSPDFKit, however based on NDA restrictions we can not list all of them. Usually, you'll notice our iconic annotation toolbar and the bottom scrubber bar as the typical polished PSPDF experience.

Android

Google added basic PDF rendering support to Android as of API level 21 (Android 5.0 Lollipop). This is mostly meant for printing and far more limited than the already very limited PDF support in iOS. This API cannot be used to extract critical informations like PDF links, annotations, bookmarks, page labels or any other metadata and thus is not complete enough to build a great PDF experience with. (However, it's good enough for printing, which was Google's whole motivation for adding this)

Since Android didn't had a native renderer for a long time and the current one is still very limited, there are a number of 3rd-party frameworks. Note that many of them are GPL-licensed, which would force you to open source your entire application too. Examples of this are MuPDF/VuDroid/apv/apdfviewer, Poppler or iText. If you choose PSPDFKit for Android, you get a commercial license that does not has any of the (A)GPL drawbacks.

Popular 3rd-party apps on Android with annotation support.

Adobe Acrobat or Google PDF Viewer (very basic). The ecosystem here is not as good yet, so we can't recommend many apps here.

Google Chrome (Desktop)

Google Chrome uses it's own PDF renderer since version 6. It has been improved over time and can render annotations and forms. This viewer is used across Windows, Mac and Linux.