Где я могу получить гиперссылки в структуре документа PDF (кроме записи «Аннотации» в словаре страницы)? - PullRequest
3 голосов
/ 12 августа 2010

У меня есть два документа в формате PDF (doc1 и doc2) с гиперссылками, например, www.somlink.com, www.somlink2.com.В соответствии со спецификацией PDF я могу получить эти гиперссылки через аннотации ссылок.Ссылочные аннотации можно найти в словаре pdf-страницы под ключом «Annots».

    CGPDFDictionaryRef pageDictionary = CGPDFPageGetDictionary(someCGPDFPage);
CGPDFArrayRef annots;
CGPDFDictionaryGetArray(pageDictionary, "Annots", &annots);

Так что проблема в том, что в одном документе PDF (doc1) я получаю этот массив «Annots», но в другом документе (doc2)в словаре страницы такой записи нет.И дело в том, что с PDFKit.framework вы можете получать эти аннотации в классе PDFPage, используя - (NSArray *) метод аннотаций, даже если в словаре страниц нет записи "Annots".

Я не могу использовать PDFKit.framework на iPad / iPhone, поэтому я работаю с платформой Quartz:)

Так что, похоже, есть еще одно место, где вы можете указать гиперссылки (или ссылки на аннотации в PDF Reference), не только в массиве "Annots"и PDFKit.framework каким-то образом знают, как это сделать.

Есть идеи, где я могу получить эти гиперссылки?

Ответы [ 2 ]

1 голос
/ 20 июля 2015

Средство просмотра PDF, такое как Adobe Reader, просто позволяет щелкать и перемещаться по простому тексту, если он выглядит как гиперссылка - т.е. начинается с http://, https://, ftp: // и заканчивается некоторым разделителем URL, таким как пробел.Все так просто;)

1 голос
/ 07 ноября 2010

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

Текстовая строка "http://blah.com" - это не обязательно ссылка, это просто фрагмент текста, описывающий URL. Это может вызвать у вас замешательство.

Также возможно встраивать действия ссылок в закладки. Я совсем не знаком с PDFKit или Quartz, так что вы сами в отношении вызовов API.

И, наконец, (перечитавВаш вопрос), я полагаю, что аннотации могут быть унаследованы от их родительского объекта Pages. Должен искать этот объект ... Нет. Массив аннотаций ДОЛЖЕН быть в листовом объекте страницы, иначе он недействителен.

Можете ли вы публиковать ссылки на ваши PDF-файлы? Что-то здесь не так.

...