views:

2494

answers:

3

Hi,

I am currently working on an educational project where I would like to add some PDF reading functionality to an iPhone app. I know that it is possible to add a UIWebView and display the PDF there, however I would like to add the ability to show page number, 'next', 'previous' buttons etc. Is CGPDFDocument the direction that I should be headed or is there a better (ie more feature rich) library available? I have had a look around to try and find the capabilities of CGPDFDocument, but besides the API reference there is not much available.

Would it also be possible with this to annotate a pdf?

Thanks

JP

A: 

There are PDF reader apps, do these not support annotations?

Another angle could be for the iPhone app to read/download pages (images) from the internet, where one could add basic annotations to that (image/layer based), these coordinates could be saved to a server. Those annotations could then be added programatically to a PDF on the server for download?

Mark Redman
Thanks for the reply. I don't know if there are any apps available that do support annotations. However, having looked there is an app here http://bit.ly/3JiFiv that does support it. I was wondering if there was a built in library or similar that supported these features.
Jack
+5  A: 

Here is a good (working) example of the CGPDF functions: http://www.olivetoast.com/blog/2009/08/simple-uiscrollview-catiledlayer-pdf-example/

It uses a CATiledLayer + UIScrollView, this may not be appropriate for a reader of sorts, but it still shows you how to load and draw a PDF doc without UIWebView (which severely restricts your abilities).

Change the layer type back to a layer, add in page handling using CGPDFDocumentGetNumberOfPages and then CGPDFDocumentGetPage and you have a pretty good reader.

I don't know how to perform annotations, I suspect you would need your own data structure on top of the document.

Mobs
Did you look at this?
Mobs
Yeah I had a look at this earlier today, it is really useful for drawing PDFs, thanks. My next problem is handling annotations - have no idea where to start.
Jack
this project is so, so cool :D I can recommend for others. :)
Infinity
A: 

Jack, Were you able to add annotations, if yes pls help. I am having same issue

Darshan Sampat
Unfortunately not. If you have any luck, please feel free to add it to this question.
Jack