Показать PDF в iPad с использованием API CGPDF

Я узнал, что Apple выпустила CGPDF API в SDK 3.2 для рисования контекста PDF.

Что я понимаю из этих API-интерфейсов, так это то, что вы можете нарисовать PDF файл для объекта данных или PDF файла. Затем вы можете экспортировать его, может быть, в свою папку с песочницей или добавить в качестве вложения в почту.

Но я не уверен, можем ли мы использовать эти API для чтения PDF файла из пакета приложений и показывать его пользователю по страницам на экране. Что я хочу сделать, так это открыть PDF-журнал журнала в приложении для чтения журналов.

Мне также было интересно узнать, можно ли идентифицировать ссылки в PDF файле и открыть их в приложении.

Сообщите мне, если сделали ИЛИ делали что-либо подобное.

Спасибо AJ

Ответ 1

В документации API есть способ загрузить PDF (с Quartz): CGPDFDocument - это тот объект, который вам нужен и CGPDFDocumentCreateWithURL, вероятно, является конструктором, который вы ищете.

Вот несколько примеров того, как это сделать: http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html#//apple_ref/doc/uid/TP30001066-CH214-TPXREF109

Я потратил много времени на это - и, похоже, вам нужно использовать CATiledLayers для правильного масштабирования этих PDF файлов!

В сети есть несколько хороших примеров того, как это сделать...

Я поставлю ссылку/решение здесь, как только у меня будет что-то готовое!

Ответ 2

Отображение PDF с помощью API Quartz довольно просто. Но нет никакой поддержки для аннотаций ссылок. В принципе, вам нужно проанализировать словарь "Annots" внутри pdf, а затем найти правильную страницу (которая может быть ссылками GoTo или именованными ссылками или ~ 10 другими типами, см. Adobe PDF Reference 1.7, раздел о действиях) и вычислить координаты на отображаемой странице.

Я написал [коммерческую] библиотеку, которая включает в себя парсинг аннотации ссылок и многие другие функции. Вы можете посмотреть http://pspdfkit.com