Нативное удаление аннотаций

Удаляет существующие аннотации страниц по их индексу страницы с нуля и точному значению Unicode NM, сохраняя исходную ревизию PDF и готовя отдельный инкрементальный вывод

Нативная точка входа — THPDFHeadlessDocument.SaveAnnotationRemovalsToFile; обычные документы Windows используют THPDFWindowsFormDataTransaction.RemoveAnnotations

Идентичность и зависимости

Каждая идентичность содержит валидный индекс страницы и непустое имя; сопоставление чувствительно к регистру после декодирования текстовой строки PDF, без нормализации Unicode и без сопоставления с отображаемым текстом

Одно и то же имя на разных страницах указывает разные аннотации; отсутствие имени на выбранной странице — это no-op

Удаление аннотации также удаляет её popup и зависящие от неё ответы, включая вложенные ответы и зависимости popup; множество посещённых делает циклы зависимостей конечными, и каждая удалённая аннотация учитывается в возвращённом счётчике один раз

Удаление одного popup сохраняет его владельца и очищает запись Popup владельца; несвязанные аннотации сохраняют свой исходный порядок и данные

Дублирующиеся запрошенные идентичности, неоднозначное запрошенное имя на одной странице или словарь аннотации, разделяемый несколькими записями массива страниц, дают сбой до публикации

Публикация и безопасность

Нативный метод оставляет загруженный документ неизменным и при успехе, и при сбое; чтобы применить удаление, загрузите полученный PDF

Публикация использует подготовленный файл и атомарную замену назначения; неудавшаяся или отменённая подготовка сохраняет существующее назначение, а назначение не должно быть псевдонимом загруженного источника

Ноль удалений публикует точную копию текущей ревизии источника; повторение того же удаления над полученным документом возвращает ноль и сохраняет его байты

Инкрементальная ревизия удаляет аннотации из текущего графа страниц, сохраняя старые байты и ревизии; эта операция не является безопасным стиранием или редактированием с сокрытием, и удалённое содержимое может остаться восстановимым из истории файла

Разрешения и пределы ресурсов

Фактические удаления требуют аутентифицированного разрешения на аннотации для зашифрованного входа и допуска политики подписей для подписанного входа; успешное открытие зашифрованного PDF само по себе не даёт разрешения менять аннотации

Аутентифицированная сертификация P1 и P2 отклоняет изменения аннотаций; допустимое обновление P3 сохраняет исходные подписанные байты, причём проверки целостности подписи и привязки сертификатов применяются к фактическому документу

Настраивайте требуемое доверие к сертификатам, метки времени и политику отзыва явно, когда эти проверки входят в требования безопасности приложения

Опции удаления ограничивают число аннотаций, работу операции, хранение имён и рабочую память, с кооперативной отменой, разделяемой с документом или транзакцией

Текущая граница

Выбранный Widget или Widget, достигнутый через зависимости удаления, отклоняется, потому что удаление полей формы требует транзакции дерева полей AcroForm; этот API не удаляет поля и не отсоединяет молча их виджеты

Операция не выполняет действия и скрипты аннотаций и не трактует удаление как применение аннотации Redact

annotations.remove, явный входной IO и отдельные этапы фиксации PDF, результата и контекста см. в JSON- и колбэк-операциях