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