Как получить доступ к гиперссылкам в PDF-документах (iPhone)?

Можно ли получить доступ к "внутренним" ссылкам в PDF-документах с помощью CGPDFDocument или другими способами? Я создаю простое приложение для чтения и хотел бы доставить мой контент в формате PDF, но если я не могу поддерживать ссылки между страницами в документе, это, вероятно, не сработает.

Этот вопрос похож, но не затрагивает вопрос о том, как поддерживать гиперссылки.

Ответы

Ответ 1

Смотрите мой ответ здесь. В принципе, вам нужно познакомиться с аннотациями PDF-ссылок.

Ответ 3

Если вы используете Quartz для открытия и просмотра PDF, то да, похоже, что у вас будет доступ к внутренним ссылкам. Кварц также позволит вам добавить новые ссылки в PDF файлы. У меня нет опыта работы с iPhone/Mac, но было бы довольно странно, если бы вы добавили гиперссылки, но не использовали их.

Ответ 4

Вам нужно сделать это в два шага.

Сначала: проанализируйте свой pdf файл, чтобы найти помеченные операторы содержимого

Это пример кода синтаксического анализа:

-(void)parseContent() {
    CGPDFOperatorTableRef myTable;
    myTable = CGPDFOperatorTableCreate();
    CGPDFOperatorTableSetCallback(myTable, "BMC", &myOperator_BMC);
    CGPDFContentStreamRef myContentStream = CGPDFContentStreamCreateWithPage(page);
    CGPDFScannerRef myScanner = CGPDFScannerCreate(myContentStream, myTable, autoZoomAreas);
    CGPDFScannerScan(myScanner);
    CGPDFScannerRelease(myScanner);
    CGPDFContentStreamRelease(myContentStream); 
}

void myOperator_BMC(CGPDFScannerRef s, void *info)
{
    const char *name;
    CGPDFScannerPopName(s, &name);
}

(Вам необходимо заполнить и настроить этот код в соответствии с вашим требованием)

Во-вторых: ответьте на сообщение touchEEded, чтобы обработать нажатие на эти зоны и сделать соответствующий пользовательский интерфейс соответствующим образом.