2010-06-15 21 views
10

J'ai appris qu'Apple a lancé des API CGPDF dans SDK 3.2 pour dessiner un contexte PDF. Ce que je comprends de ces API est que vous pouvez dessiner un PDF dans un objet de données ou un fichier PDF. Vous pouvez ensuite l'exporter, peut-être, dans le répertoire de votre sandbox OU l'ajouter en tant que pièce jointe dans le courrier. Mais je ne sais pas si nous pouvons utiliser ces API pour lire un PDF à partir d'un ensemble d'applications et le montrer à l'utilisateur page par page à l'écran. Ce que je veux faire est d'ouvrir un fichier PDF d'un magazine dans une application de lecture de magazine.Afficher le PDF en iPad à l'aide des API CGPDF

Je me demandais aussi si nous pouvions identifier les liens dans un fichier PDF et les ouvrir dans l'application. Dites-moi si vous avez fait OU si vous faites quelque chose comme ça.

Merci AJ

Répondre

12

Dans la documentation de l'API, il est un moyen de charger un fichier PDF (avec Quartz): CGPDFDocument est l'objet dont vous avez besoin et CGPDFDocumentCreateWithURL est probablement le constructeur que vous recherchez.

Voici quelques exemples sur la façon de le faire: http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html#//apple_ref/doc/uid/TP30001066-CH214-TPXREF109

J'ai passé beaucoup de temps à ce sujet - et il semble que vous devez utiliser CATiledLayers pour agrandir ces fichiers PDF correctement!

Il y a quelques bons exemples sur le net sur la façon de le faire ...

Je vais mettre un lien/solution ici dès que j'ai quelque chose de prêt!

+0

vous avez des échantillons pour pdf? –

3

L'affichage du PDF avec les API Quartz est assez facile. Mais il n'y a pas de support natif pour les annotations de liens. Fondamentalement, vous devez analyser le dictionnaire "Annots" dans le pdf, puis trouver la bonne page (qui peut être des références GoTo, ou des références nommées, ou ~ 10 autres types, voir le document Adobe PDF Reference 1.7, la section sur Actions), et calculer les coordonnées de la page affichée.

J'ai écrit une bibliothèque [commerciale] qui inclut des annotations de liens d'analyse et beaucoup plus de fonctionnalités. Vous pouvez vouloir vérifier http://pspdfkit.com

+0

Steipete. existe-t-il une feuille de route dans laquelle vous allez ajouter PDF FORM FILL à ce SDK commercial? – Devaski

+0

Pas encore prévu; mais je pourrais prendre cette fonctionnalité à l'avenir. – steipete

+0

Merci Steipete! – Devaski