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 Sierra/OS X El Capitan (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 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 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.

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.

Was this page helpful? We're happy to answer any questions.