Suppression d'annotations native

Supprime les annotations de page existantes par leur indice de page à base zéro et leur valeur NM Unicode exacte, tout en conservant la révision PDF d'origine et en préparant une sortie incrémentielle distincte

Le point d'entrée natif est THPDFHeadlessDocument.SaveAnnotationRemovalsToFile ; les documents Windows ordinaires utilisent THPDFWindowsFormDataTransaction.RemoveAnnotations

Identité et dépendances

Chaque identité contient un indice de page valide et un nom non vide ; la correspondance est sensible à la casse après décodage de la chaîne de texte PDF, sans normalisation Unicode ni correspondance avec le texte affiché

Le même nom sur des pages différentes identifie des annotations différentes ; un nom absent sur la page choisie est une opération sans effet

La suppression d'une annotation supprime aussi son popup et les réponses qui en dépendent, y compris les réponses imbriquées et les dépendances de popups ; un ensemble de visites rend les cycles de dépendances finis, et chaque annotation supprimée compte une fois dans le nombre renvoyé

Supprimer un popup seul conserve son propriétaire et vide l'entrée Popup du propriétaire ; les annotations sans rapport conservent leur ordre et leurs données d'origine

Des identités demandées dupliquées, un nom demandé ambigu sur une page ou un dictionnaire d'annotation partagé par plusieurs entrées du tableau de pages provoquent un échec avant publication

Publication et sécurité

La méthode native laisse le document chargé inchangé en cas de succès comme d'échec ; chargez le PDF résultant pour adopter la suppression

La publication utilise un fichier préparé et un remplacement atomique de la destination ; une préparation échouée ou annulée préserve la destination existante, et la destination ne doit pas être un alias de la source chargée

Zéro suppression publie une copie exacte de la révision source actuelle ; répéter la même suppression sur le document résultant renvoie zéro et conserve ses octets

Une révision incrémentielle supprime des annotations du graphe de pages actuel tout en conservant les octets et révisions antérieurs ; cette opération n'est ni un effacement sécurisé ni une redaction, et le contenu supprimé peut rester récupérable dans l'historique du fichier

Permissions et limites de ressources

Les suppressions réelles exigent une permission d'annotation authentifiée pour une entrée chiffrée et l'admission de la politique de signature pour une entrée signée ; ouvrir avec succès un PDF chiffré n'accorde pas à lui seul la permission de modifier les annotations

La certification authentifiée P1 et P2 rejette les modifications d'annotations ; une mise à jour P3 permise préserve les octets signés d'origine, l'intégrité des signatures et les vérifications de liaison de certificats étant appliquées au document réel

Configurez explicitement la confiance de certificats, les horodatages et la politique de révocation requis quand ces vérifications font partie des exigences de sécurité de l'application

Les options de suppression bornent le nombre d'annotations, le travail d'opération, le stockage de noms et la mémoire de travail, avec une annulation coopérative partagée avec le document ou la transaction

Frontière actuelle

Un Widget choisi, ou atteint via les dépendances de suppression, est rejeté car la suppression de champs de formulaires exige une transaction d'arbre de champs AcroForm ; cette API ne supprime pas de champs et ne détache pas silencieusement leurs widgets

L'opération n'exécute pas d'actions ou de scripts d'annotations et n'interprète pas la suppression comme l'application d'une annotation Redact

Voir les opérations JSON et callback pour annotations.remove, l'IO d'entrée explicite et les étapes distinctes de commit PDF, résultat et contexte