What can I improve on my iOS PDF class?
One immediate change I'd make is how you're handling errors.  While try-catch blocks are extremely common in other programming languages, I actually don't see them all that very often in Objective-C.

That doesn't mean we won't have errors.  It just means error handling is typically handled differently in my experience with Objective-C.  Just take a look at some of the Foundation methods as example:

stringWithContentsOfFile:encoding:error:


You can send nil as the argument for the error, but otherwise, you send the method an NSError object, and when the method returns, if there was an error, you can check the object to find out what it was.  In the case of an init method, if an error occurred, you'd also want to return nil as well as loading the error description in the passed error object.



For completeness, it seems like it might be a good idea to create a corresponding PDFPage class.  And instead of imageForPage:size: being called over and over to create pages, the end user would create instances of PDFPage.  The PDFDocument in turn isn't much more than an array of PDFPages with some logic for adding a single page, array of pages, remove pages, from front, back, specific index, etc.