A fast and customizable Objective-C framework for reading and rendering PDF files in iPhone and iPad apps. Build PDF reader apps or use it as a PDF viewer in your existing apps.

  • Language: Objective-C
    Framework: UIKit
    Platform(s): iPad
  • Released: Apr 12, 2012
    Last Update: Jul 2, 2014

Powerful Objective-C PDF Rendering for iPhone and iPad apps

Getting PDF rendering right on the iOS platform is difficult and time consuming. Memory constraints and slow CPU conditions make it very hard to achieve fast PDF rendering. The PDF Touch SDK is the result of months of development time and years of optimization, providing you with a mature and performant solution for adding PDF capabilities to your iPhone or iPad app.

PDFTouch SDK provides a robust framework that is easy to use and customize to your needs. With just a couple of lines of code you can create a PDF view controller and display it in your app. The user interface is very similar to the iBooks app and also features a grid display for page thumbnails. For more details please refer to the Features section below.

Newsstand solution for magazine publishers

Check out the iPad Book / Newsstand PDF starter Kit if you need a complete newsstand solution that works with PDFTouch SDK out of the box.

Download the FREE Trial now and see for yourself how simple it is to add PDF rendering functionality to your app.

PDFTouch SDK for iOS


Features & Package


  • Fast multithreaded PDF rendering using Grand Central Dispatch.
  • Highly optimized caching algorithm.
  • Offline pre-rendering of pdf pages at different sizes integrated with the caching system.
  • Thumbnail grid display.
  • Pinch to zoom.
  • Double tap to zoom in and out.
  • Text search with highlighting.
  • Outline view (TOC).
  • Bookmarks.
  • Double page mode with left or right lead.
  • Page curl animations.
  • Retina Display ready.
  • Optimized for both the iPhone and iPad.
  • Includes a demo Xcode project demonstrating the common usage of the SDK's features.

Annotations Support

  • Page links
  • Web links
  • Mail links
  • Video
  • Audio
  • Maps
  • Web pages
  • Custom overlays


  • Complete source code of PDFTouch SDK.
  • Demo Xcode project.
  • Documentation with integration instructions.
  • Technical appledoc style documentation.


Code Documentation

All public classes of PDFTouch SDK are documented using appledoc. See the documentation for further information.


The source code of PDFTouch SDK is developed on Xcode 5.1 with iOS Base SDK 7.1. PDFTouch SDK works on a deployment target of iOS 6 or greater on armv7, armv7s, arm64 and can be used in ARC and non-ARC projects.


PDFTouch SDK can be integrated in two ways into your app.

1. Add the binary PDFTouch.framework

  • Drag PDFTouch.framework into the "Frameworks" group of your Xcode project.
  • Add the required libraries as shown in the screenshot below.
  • Add PDFTouch.bundle to your projects resources as shown in the screenshot below.
  • Open the Build Settings tab and apply the following changes:
    • Other Linker Flags -> -all_load -ObjC
  • Add the following import statement everywhere you want to use PDFTouch SDK: #import <PDFTouch/PDFTouch.h> Binary

2. Add PDFTouch.xcodeproj as a dependency

  • Copy the whole PDFTouch folder into your project's root folder.
  • Drag PDFTouch.xcodeproj into the "Frameworks" group of your Xcode project.
  • Add PDFTouch as a target dependency.
  • Add the required libraries as shown in the screenshot below.
  • Add PDFTouch.bundle to your projects resources as shown in the screenshot below.
  • Open the Build Settings tab and apply the following changes:
    • Other Linker Flags -> -all_load -ObjC
    • Add the following paths to "Header Search Paths":
      • "PDFTouch/**"
  • Add the following import statement everywhere you want to use PDFTouch SDK: #import "PDFTouch.h" Source

Sample Usage

1. Create a YLDocument instance for the PDF file you want to display.

NSString *path = [[NSBundle mainBundle] PathForResource:@"Developers" withExtension:@"pdf"];
YLDocument *document = [[[YLDocument alloc] initWithFilePath:url] autorelease];

2. Create a YLPDFViewController instance and present it as a modal or child view controller.

YLPDFViewController *v = [[YLPDFViewController alloc] initWithDocument:document];
[v setDocumentMode:YLDocumentModeDouble];
[v setDocumentLead:YLDocumentLeadRight];
[v setPageCurlEnabled:YES];
[v setModalPresentationStyle:UIModalPresentationFullScreen];
[v setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self.navigationController presentModalViewController:v animated:YES];
[v release];
You need to log-in or create an account
  • Create an account
  • Log-in
Please use your real name.
Activation link will be sent to this address.
Minimum 8 characters
Enter your password again

Clicking this button confirms you read and agreed to the terms of use and privacy policy.


Save your watchlist

Fill your details below to receive project updates from your watch list - including new versions, price changes and discounts.

I agree to the terms of use and privacy policy.

3 licenses, starting from From » $749.99 14 day money-back guarantee View Licenses
or Get a quote

for customization or integration services

  • Excellent, well written component that saved us a lot of time. Also very active & responsive support.
    CF Christian Fruehwirth
    1 year ago, 0 comments
    Was this helpful?
    Flag 4 of 4 people found this review helpful
  • Awesome Product and very good support. Instantly getting help with all my little issues since iam not a professional coder.
    AP Andre Prior
    2 years ago, 0 comments
    Was this helpful?
    Flag 3 of 3 people found this review helpful
  • The component is very stable for being a fairly new release. I tried all the other open source pdf viewers and they all seemed to be filled with show stopping bugs. To integrate this pdf viewer it was a matter of 10 lines and a few Apple frameworks.
    BW Bryan Williams
    2 years ago, 0 comments
    Was this helpful?
    Flag 3 of 3 people found this review helpful
Post a comment

Or enter your name and Email
  • DH Danyal Haq 2 weeks ago
    Hi, Currently we are working on integrating 3D PDF files within our iOS (iPad) application. But I would appreciate that you can share your views on the idea of 3D PDF files and if we i.e., my organization build upon the work you have already done and try to add support for 3D PDFs. I would appreciate any of your thoughts on the matter.
    • Kemal Taskin Developer 1 week ago
      Hi Danyal, PDFTouch SDK uses the native iOS PDF engine to render PDF pages. I don't have much knowledge about 3D PDF files but to get this work you'll have to extract the 3D model data (which is most likely in U3D format) and write code to render this model on the current page. You can of course use PDFTouch SDK's source code as a starting point and build the 3D support on top of it but the work I mentioned above will have to be implemented from scratch.
    • DH Danyal Haq 1 week ago
      Hi Kemal, Thanks for the reply. I understand that the work will need to be done from scratch. So, just in case we do decide to go this path, will the licensing of the product remain same?
    • Kemal Taskin Developer 1 week ago
      Hi Danyal, Please open a private ticket on Binpress so that we can discuss licensing details.
  • KB Keith Baker 3 weeks ago
    Hi we have written a android app using codename one and are looking at this to integrate for our IOS version. Our programmer asked the following questions. Perhaps you could shed some light if these are possible before we purchase. I still haven't had a chance to look at it, but let me quickly run this by you. Currently Android has a library I wrote that's mirror's muPDF. I have the following function calls I make to my library from within the CodenameOne system. 1. A function that renders a pdf page to file, which is then read by CodenameOne's side. 2. A function that returns the page count of the pdf 3. A function that renders the pdf page to an image file with a pre-set width and height returning relative page dimensions 4. A function that renders part of a pdf page based off relative coordinates and size and write it to an image with a pre-set size 5. A function that returns the relative positions of a searched text query 6. A function that returns all the words on a page 7. A function that returns the word at a given relative position on a page 8. A function that returns all the words in the pdf. If their library can do those functions, I can plug it into the current Interface, but I think their library may have their entire own presentation layer, in which case We pass presentation entirely to their side which would mean that I need to bypass the Interface entirely. Dev time if they can provide the following functionality, is whatever time they think it would be necessary to make those calls + a few hours. Devi time if they can't provide that functionality would be much greater and dependant on how I can hook it up to CN1
    • Kemal Taskin Developer 3 weeks ago
      Hi Keith, I don't have much knowledge about the codename one platform but all of the 8 requirements you listed are possible using PDFTouch SDKs API except the search related items. PDFTouch can search for a word and return a list of pages where the word is found and highlight them. But you can't request all the words on a page or in the PDF file and you can't query the word at a certain location on a page. Regarding integration of PDFTouch SDK in your project: our framework consists of two parts: core + UI. Your developer can use the core part to render pages into images and query information about the PDF file like page count. I don't know if he'll be able to use the UI (presentation layer) in his codebase.
  • EF Enrico Franzelli 1 month ago
    Hello, it's possible to show two different PDF in the same view? I accomplished it by putting two views of YLPDFViewController as child of my UIViewController's view, but it crashes every time I open two documents with 15+ pages and scrolling one of them beyond last page. Also, pages are out-of-line during scroll. Is there another way to do it? Thank you
    • Kemal Taskin Developer 1 month ago
      Hi Enrico, I've never tested displaying two PDF files in the same view so I can't say that it's supported. Can you send me a sample project so that I can have a look where it crashes? You can reach me at "kemal dot taskin at gmail dot com".