9

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

Jack
  • 3,878
  • 15
  • 42
  • 72

3 Answers3

5

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
  • 1,572
  • 12
  • 17
1

Update: 04 Feb 2012

Check out this project, it's opensource and very well made. I think it could be a great starting point for your PDF reader.

Project:
http://www.vfr.org/

Source:
https://github.com/vfr/Reader

Cesar
  • 4,418
  • 2
  • 31
  • 37
0

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
  • 24,079
  • 20
  • 92
  • 147
  • 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 Jan 29 '10 at 20:51