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

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

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

4 ответа

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

Посмотрите этот пример кода... гиперссылки PDF работает в этом

https://github.com/vfr/Reader

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

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

Во-первых: проанализируйте ваш 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);
}

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

Второе: ответьте на сообщение toucheEnded, чтобы обработать нажатие на эти зоны и заставить интерфейс реагировать соответствующим образом.

Другие вопросы по тегам