forked from vfr/Reader
-
Notifications
You must be signed in to change notification settings - Fork 0
Basic PDF Reader/Viewer for iOS
License
Neral/Reader
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Basic PDF Reader/Viewer V2.1 for iOS INTRODUCTION I've written this basic PDF reader/viewer app for fellow iOS developers struggling with wrangling PDF files onto iOS device screens. Version 2.x is a complete rethink and rewrite of the original 1.x code. Please see my contact info below if you find any bugs or have questions about the code. The code is universal and does not require any XIBs (as all UI elements are code generated, allowing for greatest flexibility). It runs on iPad, iPhone and iPod touch with iOS 4.0 and up. Also supported are the Retina displays on iPhone 4 and iPod touch 4th generation and is ready to be fully internationalized. The idea was to provide a complete project template that you could start building from, or, just pull the required files into an existing project to enable PDF reading/viewing in your apps. After launching the sample app, tap on the left hand side of the screen to go back a page. Tap on the right hand side to go to the next page. You can also swipe left and right to change pages. Tap on the screen to fade in the toolbar and page slider. Double-tap with one finger (or pinch out) to zoom in. Double tap with two fingers (or pinch in) to zoom out. This implementation has been tested with large PDF files (over 250MB in size and over 2800 pages in length) and with PDF files of all flavors (from text only documents to graphics heavy magazines). It also works rather well on older devices (such as the iPod touch 2nd generation and iPhone 3G) and takes advantage of the dual-core processor (via CATiledLayer multi-threading) in the iPad 2. NOTES Version 2.x of the PDF reader/viewer code was developed and tested under Xcode 3.2.6, LLVM 1.7, iOS 4.3.5 and iOS 4.2.1 - if you come across any issues with other versions of the tools, or iOS, please let me know. The overall PDF reader/viewer functionality is encapsulated in the ReaderViewController class. You initialize a ReaderDocument object with the file path to the PDF document (or unarchive an existing ReaderDocument object) and then initialize a ReaderViewController with this ReaderDocument object. The ReaderViewController class uses the ReaderDocument object to store information about the document and to keep track of document properties (the current page number for example). An initialized ReaderViewController can then be presented modally, pushed onto a UINavigationController stack, placed in a UITabBarController tab, or be used as a root view controller. Please note that since ReaderViewController implements its own toolbar, you need to hide the UINavigationController navigation bar before pushing it and then show the navigation bar after popping it. The ReaderDemoController class shows how this is done with a bundled PDF file. Required Files -------------- The following files are required to incorporate the PDF reader/viewer into one of your projects: ReaderDocument.h, ReaderDocument.m ReaderConstants.h, ReaderConstants.m ReaderViewController.h, ReaderViewController.m ReaderMainToolbar.h, ReaderMainToolbar.m ReaderMainPagebar.h, ReaderMainPagebar.m ReaderContentView.h, ReaderContentView.m ReaderContentPage.h, ReaderContentPage.m ReaderContentTile.h, ReaderContentTile.m ReaderScrollView.h, ReaderScrollView.m CGPDFDocument.h, CGPDFDocument.m Localizable.strings (UTF-16 encoding) Reader-Email.png, [email protected] Reader-Print.png, [email protected] Required iOS Frameworks ----------------------- To incorporate the PDF reader/viewer into one of your projects, the following iOS frameworks are required by the code: UIKit, Foundation, CoreGraphics, QuartzCore and MessageUI. Compile Time Options -------------------- In ReaderConstants.h the following #define options are available: READER_STANDALONE - If FALSE, a "Done" button is added to the toolbar and the -dismissReaderViewController: delegate method is messaged when it is tapped. READER_ENABLE_MAIL - If TRUE, an email button is added to the toolbar (if the device is properly configured for email support). READER_ENABLE_PRINT - If TRUE, a print button is added to the toolbar (if printing is supported and available on the device). READER_DISABLE_IDLE - If TRUE, the iOS idle timer is disabled while viewing a document (beware of battery drain). READER_SHOW_SHADOW - If TRUE, a shadow is shown around each page and the page content is inset by a couple of extra points. ReaderDocument Object Archiving ------------------------------- To change where the property list for ReaderDocument objects is stored (~/Documents by default), please see the +archiveFilePath: method in the ReaderDocument.m source file. Do note that the ReaderDocument object data model is Core Data compatible. HISTORY 2011-07-29: Version 2.0.0 - Released v2.0 into the wild for general use. 2011-08-25: Version 2.1.0 - Assorted code cleanup, optimizations and bug fixes. - Added PDF link (URI and page target) support. 2011-08-27: Version 2.1.1 - Fixed rotation handling when in a UITabBarController. CONTACT INFO Questions, feedback and iOS development work welcome: Email: joklamcak(at)gmail(dot)com Website: http://www.vfr.org/ ACKNOWLEDGEMENTS The PDF link support code in the ReaderContentPage class is based on the links navigation code by Sorin Nistor from http://ipdfdev.com/
About
Basic PDF Reader/Viewer for iOS
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published