Добавление запись Поддержка аннотаций затруднена.
Кварц 2D вам там не поможет.
Вам нужно вручную проанализировать PDF. (например, с помощью NSScanner) и создайте дерево XRef для всех объектов PDF. Затем вы пишете новый трейлер, который заменяет объект / Page и присоединяет все новые данные аннотации. Это довольно трудно понять, и ссылка на PDF на 2000 страниц не очень помогает в этом. Лучшую часть года я проработал для правильной поддержки аннотаций (Highlight, Underscore, Strikeout, Ink, Note, ...).
И когда вы хотите выделить аннотации, вы также хотите выделить текст (иначе пользователю придется свободно рисовать выделение - не очень приятный опыт). Получение правильных рамок для глифов текста для всех типов шрифтов PDF - это другой уровень ужаса; в PDF нет понятия слова или столбца. Просто одиночные глифы. Остальное - алгоритмы и догадки.
Я даже говорил с некоторыми инженерами Apple, как они это делали [выбор текста, аннотации], и они сказали мне, что команда из трех человек работала над их реализацией около трех лет.