Ответ 1
Можно сделать все, что только с использованием кварцевых вызовов. Кварц, очевидно, основан на С, поэтому требуется некоторое время, чтобы приспособиться к отсутствию квадратных скобок, но функции называются четко, и это не слишком сложно понять. Например, вы можете использовать CGPDFDocumentGetNumberOfPages(), CGPDFDocumentGetPage() и CGContextDrawPDFPage() для отображения данной страницы из документа. Там есть приятное объяснение поиска PDF здесь: Случайные идеи
Ничто из этого не означает, что сторонняя структура - плохая идея - если кто-то уже проделал эту работу, чтобы сделать все это легко, а потом здорово. Но если вы не найдете то, что вам подходит, не бойтесь копаться в Кварце - это не плохо.